Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/torture/pr42363.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
line wrap: on
line source
/* 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 ()) ; }