Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/gcc.dg/torture/pr42363.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line diff
--- a/gcc/testsuite/gcc.dg/torture/pr42363.c Fri Oct 27 22:46:09 2017 +0900 +++ b/gcc/testsuite/gcc.dg/torture/pr42363.c Thu Oct 25 07:37:49 2018 +0900 @@ -46,16 +46,22 @@ return i + 1; } -/* This might be regarded as pure and folded, rather than inlined. - It's pure evil. */ +/* This might be regarded as pure and folded, rather than inlined, + but because it's pure evil it's diagnosed and the noreturn attribute + is dropped. The const attribute is dropped as well because it's + mutually exclusive with pure. */ static int __attribute__ ((pure, const, noreturn)) -barf (void) -{ -} /* { dg-warning "does return" } */ +barf (void) { + /* { dg-warning "ignoring attribute .const." "const" { target *-*-* } .-1 } */ + /* { dg-warning "ignoring attribute .noreturn." "noreturn" { target *-*-* } .-2 } */ + + /* The noreturn attribute is ignored so verify there is no warning + for returning from the function: + { dg-bogus "does return" } */ +} static int __attribute__ ((pure, const)) -bark (void) -{ +bark (void) { /* { dg-warning "ignoring attribute .const." } */ barf (); }