diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/pr47925.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/pr47925.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr47925.c b/gcc/testsuite/gcc.c-torture/execute/pr47925.c new file mode 100644 index 000000000..89f54c13a --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr47925.c @@ -0,0 +1,24 @@ +struct s { volatile struct s *next; }; + +void __attribute__((noinline)) +bar (int ignored, int n) +{ + asm volatile (""); +} + +int __attribute__((noinline)) +foo (volatile struct s *ptr, int n) +{ + int i; + + bar (0, n); + for (i = 0; i < n; i++) + ptr = ptr->next; +} + +int main (void) +{ + volatile struct s rec = { &rec }; + foo (&rec, 10); + return 0; +} |