URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [torture/] [pr42363.c] - Rev 801
Go to most recent revision | Compare with Previous | Blame | View Log
/* PR middle-end/pr42363, extended from the test for PR middle-end/37913. */ /* { dg-do compile } */ /* { dg-options "-g" } */ void foo (void) __attribute__ ((noreturn)); static int __attribute__ ((noreturn)) bar (void) { foo (); } int baz (void) { int i = bar (); return i + 1; } int fooz (void) __attribute__ ((noreturn)); static int __attribute__ ((noreturn)) bart (void) { return fooz (); /* { dg-warning "noreturn" } */ } int bazr (void) { int i = bart (); return i + 1; } static inline int bard (void) { return fooz (); } int bizr (void) { int i, j; i = j = bard (); return i + 1; } /* This might be regarded as pure and folded, rather than inlined. It's pure evil. */ static int __attribute__ ((pure, const, noreturn)) barf (void) { } /* { dg-warning "does return" } */ static int __attribute__ ((pure, const)) bark (void) { barf (); } int buzr (void) { int i, j; i = j = bark () + bark (); return i + 1; } int buzt (void) { int i, j; i = j = barf () + barf (); return i + 1; } void bust (void) { while (barf ()) ; }
Go to most recent revision | Compare with Previous | Blame | View Log