diff options
author | Kaveh Ghazi <ghazi@caip.rutgers.edu> | 1999-05-13 09:18:43 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@caip.rutgers.edu> | 1999-05-13 09:18:43 +0000 |
commit | 56f4fba30ef88699349509d2dc15932a92bd9706 (patch) | |
tree | c8c32a4585690be44ff28a34d16c583e18eca586 | |
parent | d70e055d0ff6fa425e2c0158f14cd259d991c978 (diff) |
* gcc.dg/noreturn-1.c: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@26923 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/noreturn-1.c | 43 |
2 files changed, 47 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 619a1b75f71..e846e889f07 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +1999-05-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * gcc.dg/noreturn-1.c: New test. + Thu May 13 02:07:21 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * gcc.dg/990513-1.c: New test. diff --git a/gcc/testsuite/gcc.dg/noreturn-1.c b/gcc/testsuite/gcc.dg/noreturn-1.c new file mode 100644 index 00000000000..3d68cbcf500 --- /dev/null +++ b/gcc/testsuite/gcc.dg/noreturn-1.c @@ -0,0 +1,43 @@ +/* Check for various valid and erroneous "noreturn" cases. */ +/* { dg-do compile } */ +/* { dg-options "-O -Wmissing-noreturn" } */ + +extern void foo1(void) __attribute__ ((__noreturn__)); +void +foo1(void) +{ +} /* { dg-warning "`noreturn' function does return" "detect falling off end of noreturn" } */ + +extern void foo2(void) __attribute__ ((__noreturn__)); +void +foo2(void) +{ + exit(0); +} /* { dg-bogus "warning:" "this function should not get any warnings" } */ + +extern void foo3(void); +void +foo3(void) +{ +} /* { dg-bogus "warning:" "this function should not get any warnings" } */ + +extern void foo4(void); +void +foo4(void) +{ + exit(0); +} /* { dg-warning "candidate for attribute `noreturn'" "detect noreturn candidate" } */ + +extern void foo5(void) __attribute__ ((__noreturn__)); +void +foo5(void) +{ + return; /* { dg-warning "`noreturn' has a `return' statement" "detect invalid return" } */ +} /* { dg-warning "`noreturn' function does return" "detect return from noreturn" } */ + +extern void foo6(void); +void +foo6(void) +{ + return; +} /* { dg-bogus "warning:" "this function should not get any warnings" } */ |