| /* PR debug/54970 */ |
| /* PR debug/54971 */ |
| /* { dg-do run } */ |
| /* { dg-options "-g" } */ |
| |
| #include "../nop.h" |
| |
| int |
| main () |
| { |
| int a[] = { 1, 2, 3 }; /* { dg-final { gdb-test .+4 "a\[0\]" "1" { xfail { no-opts "-O0" "-Og" } } } } */ |
| int *p = a + 2; /* { dg-final { gdb-test .+3 "a\[1\]" "2" } } */ |
| int *q = a + 1; /* { dg-final { gdb-test .+2 "a\[2\]" "3" } } */ |
| /* { dg-final { gdb-test .+1 "*p" "3" } } */ |
| asm volatile (NOP); /* { dg-final { gdb-test . "*q" "2" } } */ |
| *p += 10; /* { dg-final { gdb-test .+4 "a\[0\]" "1" { xfail { no-opts "-O0" "-Og" } } } } */ |
| /* { dg-final { gdb-test .+3 "a\[1\]" "2" } } */ |
| /* { dg-final { gdb-test .+2 "a\[2\]" "13" } } */ |
| /* { dg-final { gdb-test .+1 "*p" "13" } } */ |
| asm volatile (NOP); /* { dg-final { gdb-test . "*q" "2" } } */ |
| *q += 10; /* { dg-final { gdb-test .+4 "a\[0\]" "1" { xfail { no-opts "-O0" "-Og" } } } } */ |
| /* { dg-final { gdb-test .+3 "a\[1\]" "12" } } */ |
| /* { dg-final { gdb-test .+2 "a\[2\]" "13" } } */ |
| /* { dg-final { gdb-test .+1 "*p" "13" } } */ |
| asm volatile (NOP); /* { dg-final { gdb-test . "*q" "12" } } */ |
| __builtin_memcpy (&a, (int [3]) { 4, 5, 6 }, sizeof (a)); |
| /* { dg-final { gdb-test .+4 "a\[0\]" "4" { xfail { no-opts "-O0" "-Og" } } } } */ |
| /* { dg-final { gdb-test .+3 "a\[1\]" "5" } } */ |
| /* { dg-final { gdb-test .+2 "a\[2\]" "6" } } */ |
| /* { dg-final { gdb-test .+1 "*p" "6" } } */ |
| asm volatile (NOP); /* { dg-final { gdb-test . "*q" "5" } } */ |
| *p += 20; /* { dg-final { gdb-test .+4 "a\[0\]" "4" { xfail { no-opts "-O0" "-Og" } } } } */ |
| /* { dg-final { gdb-test .+3 "a\[1\]" "5" } } */ |
| /* { dg-final { gdb-test .+2 "a\[2\]" "26" } } */ |
| /* { dg-final { gdb-test .+1 "*p" "26" } } */ |
| asm volatile (NOP); /* { dg-final { gdb-test . "*q" "5" } } */ |
| *q += 20; /* { dg-final { gdb-test .+8 "a\[0\]" "4" { xfail { no-opts "-O0" "-Og" } } } } */ |
| /* { dg-final { gdb-test .+7 "a\[1\]" "25" } } */ |
| /* { dg-final { gdb-test .+6 "a\[2\]" "26" } } */ |
| /* { dg-final { gdb-test .+5 "*p" "26" } } */ |
| /* { dg-final { gdb-test .+4 "p\[-1\]" "25" } } */ |
| /* { dg-final { gdb-test .+3 "p\[-2\]" "4" { xfail { no-opts "-O0" "-Og" } } } } */ |
| /* { dg-final { gdb-test .+2 "q\[-1\]" "4" { xfail { no-opts "-O0" "-Og" } } } } */ |
| /* { dg-final { gdb-test .+1 "q\[1\]" "26" } } */ |
| asm volatile (NOP); /* { dg-final { gdb-test . "*q" "25" } } */ |
| return 0; |
| } |