URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [20031023-1.c] - Rev 297
Compare with Previous | Blame | View Log
#ifndef ASIZE # define ASIZE 0x10000000000UL #endif #include <limits.h> #if LONG_MAX < 8 * ASIZE # undef ASIZE # define ASIZE 4096 #endif extern void abort (void); int __attribute__((noinline)) foo (const char *s) { if (!s) return 1; if (s[0] != 'a') abort (); s += ASIZE - 1; if (s[0] != 'b') abort (); return 0; } int (*fn) (const char *) = foo; int __attribute__((noinline)) bar (void) { char s[ASIZE]; s[0] = 'a'; s[ASIZE - 1] = 'b'; foo (s); foo (s); return 0; } int __attribute__((noinline)) baz (long i) { if (i) return fn (0); else { char s[ASIZE]; s[0] = 'a'; s[ASIZE - 1] = 'b'; foo (s); foo (s); return fn (0); } } int main (void) { if (bar ()) abort (); if (baz (0) != 1) abort (); if (baz (1) != 1) abort (); return 0; }