/* PR inline-asm/11676 */ | |
/* { dg-do run { target i?86-*-* } } */ | |
/* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */ | |
/* { dg-options "-O2" } */ | |
extern void abort (void); | |
static int bar(int x) __asm__("bar") __attribute__((regparm(1))); | |
static int __attribute__((regparm(1), noinline, used)) | |
bar(int x) | |
{ | |
if (x != 0) | |
abort (); | |
} | |
static int __attribute__((regparm(1), noinline)) | |
foo(int x) | |
{ | |
x = 0; | |
__asm__ __volatile__("call bar" : "=a"(x) : "a"(x)); | |
} | |
int main() | |
{ | |
foo(1); | |
return 0; | |
} |