diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/guality/pr43177.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/guality/pr43177.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/guality/pr43177.c b/gcc/testsuite/gcc.dg/guality/pr43177.c new file mode 100644 index 000000000..563835b63 --- /dev/null +++ b/gcc/testsuite/gcc.dg/guality/pr43177.c @@ -0,0 +1,36 @@ +/* { dg-do run } */ +/* { dg-options "-g" } */ + +void __attribute__((noinline)) +bar (long x) +{ + asm volatile ("" : : "r" (x) : "memory"); +} + +long __attribute__((noinline)) +foo (long x) +{ + long l = x + 3; + bar (l);/* { dg-final { gdb-test 15 "l" "10" } } */ + bar (l);/* { dg-final { gdb-test 15 "x" "7" } } */ + return l; +} + +long __attribute__((noinline)) +baz (int x) +{ + long l = x + 3; + bar (l);/* { dg-final { gdb-test 24 "l" "10" } } */ + bar (l);/* { dg-final { gdb-test 24 "x" "7" } } */ + return l; +} + +int +main (void) +{ + int i; + asm volatile ("" : "=r" (i) : "0" (7)); + foo (i); + baz (i); + return 0; +} |