| /* APPLE LOCAL file radar 6237713 - modified for radar 6230297 */ |
| /* Test for using attributes on blocks. */ |
| /* { dg-options "-mmacosx-version-min=10.5 -fblocks" { target *-*-darwin* } } */ |
| /* { dg-do compile } */ |
| |
| extern void exit(int); |
| |
| int (^a)(int) __attribute__((noreturn)); |
| |
| int main() |
| { |
| void (^a)(void) __attribute__((noreturn)) = ^ (void) __attribute__((noreturn)) { exit (0); }; // OK; |
| |
| int (^b)(int) __attribute__((noreturn)) = ^ (int i) __attribute__((noreturn)) { return i; }; /* { dg-warning "function declared \\'noreturn\\' has a \\'return\\' statement" } */ |
| /* { dg-warning "\\'noreturn\\' function does return" "" { target *-*-* } 14 } */ |
| |
| int (^c)(void) __attribute__((noreturn)) = ^ __attribute__((noreturn)) { return 100; }; /* { dg-warning "function declared \\'noreturn\\' has a \\'return\\' statement" } */ |
| /* { dg-warning "\\'noreturn\\' function does return" "" { target *-*-* } 17 } */ |
| |
| a = ^ (void) __attribute__((noreturn)) { exit (0); }; // OK |
| |
| a = ^ (void) __attribute__((noreturn)) { ; }; /* { dg-warning "\\'noreturn\\' function does return" } */ |
| |
| } |
| |