Fortran: Fix regression caused by r14-10477 [PR59104]
[official-gcc.git] / gcc / testsuite / gcc.dg / guality / pr41353-1.c
blob6639a524f0f2839f3cd71f7f23dd58f8eca06cc7
1 /* PR debug/41353 */
2 /* { dg-do run } */
3 /* { dg-options "-g" } */
5 int vari __attribute__((used)) = 17, varj;
7 __attribute__((noinline)) int
8 f1 (void)
10 /* { dg-final { gdb-test .+7 "vari" "17" } } */
11 int vari1 = 2 * vari; /* { dg-final { gdb-test .+6 "vari1" "2 * 17" } } */
12 int vari2 = 3 * vari; /* { dg-final { gdb-test .+5 "vari2" "3 * 17" } } */
13 int vari3 = 2 * vari; /* { dg-final { gdb-test .+4 "vari3" "2 * 17" } } */
14 int vari4 = 3 * vari; /* { dg-final { gdb-test .+3 "vari4" "3 * 17" } } */
15 int vari5 = 4 * vari; /* { dg-final { gdb-test .+2 "vari5" "4 * 17" } } */
16 int vari6 = 5 * vari; /* { dg-final { gdb-test .+1 "vari6" "5 * 17" } } */
17 return varj;
20 __attribute__((noinline)) int
21 f2 (int i, int j)
23 j += i;
24 /* { dg-final { gdb-test .+4 "i" "37" } } */
25 /* { dg-final { gdb-test .+3 "j" "28 + 37" { xfail { no-opts "-O0" } } } } */
26 int i1 = 2 * i; /* { dg-final { gdb-test .+2 "i1" "2 * 37" } } */
27 int i2 = 3 * i; /* { dg-final { gdb-test .+1 "i2" "3 * 37" } } */
28 return j;
31 __attribute__((noinline)) int
32 f3 (int i)
34 asm volatile ("" : "+r" (i));
35 /* { dg-final { gdb-test .+4 "i" "12" } } */
36 int i1 = 2 * i; /* { dg-final { gdb-test .+3 "i1" "2 * 12" } } */
37 int i2 = 2 * i; /* { dg-final { gdb-test .+2 "i2" "2 * 12" } } */
38 int i3 = 3 * i; /* { dg-final { gdb-test .+1 "i3" "3 * 12" } } */
39 return i;
42 int (*volatile fnp1) (void) = f1;
43 int (*volatile fnp2) (int, int) = f2;
44 int (*volatile fnp3) (int) = f3;
46 int
47 main (int argc, char *argv[])
49 asm volatile ("" : : "r" (&fnp1) : "memory");
50 asm volatile ("" : : "r" (&fnp2) : "memory");
51 asm volatile ("" : : "r" (&fnp3) : "memory");
52 fnp1 ();
53 fnp2 (37, 28);
54 fnp3 (12);
55 return 0;