Mercurial > hg > CbC > CbC_llvm
diff clang/test/SemaObjC/attr-called-once.m @ 207:2e18cbf3894f
LLVM12
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Jun 2021 06:07:14 +0900 |
parents | |
children | c4bab56944e8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clang/test/SemaObjC/attr-called-once.m Tue Jun 08 06:07:14 2021 +0900 @@ -0,0 +1,20 @@ +// RUN: %clang_cc1 -verify -fsyntax-only -fobjc-arc -fblocks %s + +#define CALLED_ONCE __attribute__((called_once)) + +void test1(int x CALLED_ONCE); // expected-error{{'called_once' attribute only applies to function-like parameters}} +void test2(double x CALLED_ONCE); // expected-error{{'called_once' attribute only applies to function-like parameters}} + +void test3(void (*foo)() CALLED_ONCE); // no-error +void test4(int (^foo)(int) CALLED_ONCE); // no-error + +void test5(void (*foo)() __attribute__((called_once(1)))); +// expected-error@-1{{'called_once' attribute takes no arguments}} +void test6(void (*foo)() __attribute__((called_once("str1", "str2")))); +// expected-error@-1{{'called_once' attribute takes no arguments}} + +CALLED_ONCE void test7(); // expected-warning{{'called_once' attribute only applies to parameters}} +void test8() { + void (*foo)() CALLED_ONCE; // expected-warning{{'called_once' attribute only applies to parameters}} + foo(); +}