URL
https://opencores.org/ocsvn/scarts/scarts/trunk
Subversion Repositories scarts
[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [990208-1.c] - Rev 12
Compare with Previous | Blame | View Log
/* As a quality of implementation issue, we should not prevent inlining of function explicitly marked inline just because a label therein had its address taken. */ #ifndef NO_LABEL_VALUES static void *ptr1, *ptr2; static int i = 1; static __inline__ void doit(void **pptr, int cond) { if (cond) { here: *pptr = &&here; } } __attribute__ ((noinline)) static void f(int cond) { doit (&ptr1, cond); } __attribute__ ((noinline)) static void g(int cond) { doit (&ptr2, cond); } __attribute__ ((noinline)) static void bar(void); int main() { f (i); bar(); g (i); #ifdef __OPTIMIZE__ if (ptr1 == ptr2) abort (); #endif exit (0); } void bar(void) { } #else /* NO_LABEL_VALUES */ int main() { exit(0); } #endif