blob: c6f7c17a13580b7d647ce83f71c19b14a6fdc58a [file] [log] [blame]
/* 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" } */
}