1 /* PR debug/45882 */
2 /* { dg-do run } */
3 /* { dg-options "-g" } */
4
5 #include "prevent-optimization.h"
6
7 extern void abort (void);
8 int a[1024] ATTRIBUTE_USED;
9 volatile short int v;
10
11 __attribute__((noinline,noclone,used)) int
12 foo (int i, int j)
13 {
14 int b = i; /* { dg-final { gdb-test .+4 "b" "7" } } */
15 int c = i + 4; /* { dg-final { gdb-test .+3 "c" "11" } } */
16 int d = a[i]; /* { dg-final { gdb-test .+2 "d" "112" } } */
17 int e = a[i + 6]; /* { dg-final { gdb-test .+1 "e" "142" } } */
18 ++v;
19 return ++j;
20 }
21
22 int
23 main (void)
24 {
25 int l;
26 asm ("" : "=r" (l) : "0" (7));
27 a[7] = 112;
28 a[7 + 6] = 142;
29 if (foo (l, 7) != 8)
30 abort ();
31 return l - 7;
32 }