111
|
1 /* PR debug/43150 */
|
|
2 /* { dg-do run } */
|
|
3 /* { dg-options "-g" } */
|
|
4
|
|
5 void __attribute__((noinline))
|
|
6 bar (short *p)
|
|
7 {
|
|
8 __builtin_memset (p, '\0', 17 * sizeof (*p));
|
|
9 asm volatile ("" : : "r" (p) : "memory");
|
|
10 }
|
|
11
|
|
12 int __attribute__((noinline))
|
|
13 f1 (int i)
|
|
14 {
|
|
15 char a[i + 1];
|
131
|
16 a[0] = 5; /* { dg-final { gdb-test .+1 "i" "5" } } */
|
|
17 return a[0]; /* { dg-final { gdb-test . "sizeof (a)" "6" } } */
|
111
|
18 }
|
|
19
|
|
20 int __attribute__((noinline))
|
|
21 f2 (int i)
|
|
22 {
|
131
|
23 short a[i * 2 + 7]; /* { dg-final { gdb-test .+1 "i" "5" } } */
|
|
24 bar (a); /* { dg-final { gdb-test . "sizeof (a)" "17 * sizeof (short)" } } */
|
111
|
25 return a[i + 4];
|
|
26 }
|
|
27
|
|
28 int
|
|
29 main ()
|
|
30 {
|
|
31 volatile int j;
|
|
32 int i = 5;
|
|
33 asm volatile ("" : "=r" (i) : "0" (i));
|
|
34 j = f1 (i);
|
|
35 f2 (i);
|
|
36 return 0;
|
|
37 }
|