summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema/block-misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Sema/block-misc.c')
-rw-r--r--clang/test/Sema/block-misc.c57
1 files changed, 31 insertions, 26 deletions
diff --git a/clang/test/Sema/block-misc.c b/clang/test/Sema/block-misc.c
index dde07f07394..ea3477d2639 100644
--- a/clang/test/Sema/block-misc.c
+++ b/clang/test/Sema/block-misc.c
@@ -4,48 +4,48 @@ void donotwarn();
int (^IFP) ();
int (^II) (int);
int test1() {
- int (^PFR) (int) = 0; // OK
- PFR = II; // OK
+ int (^PFR) (int) = 0; // OK
+ PFR = II; // OK
- if (PFR == II) // OK
- donotwarn();
+ if (PFR == II) // OK
+ donotwarn();
- if (PFR == IFP) // expected-error {{comparison of distinct block types}}
- donotwarn();
+ if (PFR == IFP) // expected-error {{comparison of distinct block types}}
+ donotwarn();
- if (PFR == (int (^) (int))IFP) // OK
- donotwarn();
+ if (PFR == (int (^) (int))IFP) // OK
+ donotwarn();
- if (PFR == 0) // OK
- donotwarn();
+ if (PFR == 0) // OK
+ donotwarn();
- if (PFR) // OK
- donotwarn();
+ if (PFR) // OK
+ donotwarn();
- if (!PFR) // OK
- donotwarn();
+ if (!PFR) // OK
+ donotwarn();
- return PFR != IFP; // expected-error {{comparison of distinct block types}}
+ return PFR != IFP; // expected-error {{comparison of distinct block types}}
}
int test2(double (^S)()) {
- double (^I)(int) = (void*) S;
- (void*)I = (void *)S; // expected-error {{assignment to cast is illegal, lvalue casts are not supported}}
+ double (^I)(int) = (void*) S;
+ (void*)I = (void *)S; // expected-error {{assignment to cast is illegal, lvalue casts are not supported}}
- void *pv = I;
+ void *pv = I;
- pv = S;
+ pv = S;
- I(1);
-
- return (void*)I == (void *)S;
+ I(1);
+
+ return (void*)I == (void *)S;
}
int^ x; // expected-error {{block pointer to non-function type is invalid}}
int^^ x1; // expected-error {{block pointer to non-function type is invalid}} expected-error {{block pointer to non-function type is invalid}}
int test3() {
- char *^ y; // expected-error {{block pointer to non-function type is invalid}}
+ char *^ y; // expected-error {{block pointer to non-function type is invalid}}
}
@@ -72,8 +72,13 @@ void test5() {
// rdar://6405429 - __func__ in a block refers to the containing function name.
const char*test6() {
- return ^{
- return __func__;
- } ();
+ return ^{
+ return __func__;
+ } ();
}
+// radr://6732116 - block comparisons
+void (^g)();
+int foo(void (^p)()) {
+ return g == p;
+}
OpenPOWER on IntegriCloud