parent
fa5b060f90
commit
ee41cff421
|
@ -1,3 +1,7 @@
|
|||
2003-07-03 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
|
||||
* gcc.dg/i386-call-1.c: New test.
|
||||
|
||||
2003-07-03 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
PR c++/9162
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
/* PR optimization/11304 */
|
||||
/* Originator: <manuel.serrano@sophia.inria.fr> */
|
||||
/* { dg-do run { target i?86-*-* } } */
|
||||
/* { 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;
|
||||
}
|
Loading…
Reference in New Issue