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.target/] [i386/] [call-1.c] - Rev 318
Compare with Previous | Blame | View Log
/* PR optimization/11304 */ /* Originator: <manuel.serrano@sophia.inria.fr> */ /* { dg-do run } */ /* { dg-options "-O -fomit-frame-pointer" } */ /* Verify that %eax is always restored after a call. */ extern void abort(void); volatile int r; void set_eax(int val) { __asm__ __volatile__ ("mov %0, %%eax" : : "m" (val)); } void foo(int val) { r = val; } int bar(int x) { if (x) { set_eax(0); return x; } foo(x); } int main(void) { if (bar(1) != 1) abort(); return 0; }