111
|
1 /* PR debug/48466 */
|
|
2 /* { dg-do run } */
|
|
3 /* { dg-options "-g" } */
|
|
4 /* { dg-skip-if "" { *-*-* } { "*" } { "-O0" } } */
|
|
5
|
|
6 struct S { unsigned int a; unsigned int *b; };
|
|
7 struct T { struct S a; struct S b; };
|
|
8 struct U { const char *u; };
|
|
9 int n[10];
|
|
10 volatile int v;
|
|
11
|
|
12 struct U
|
|
13 foo (const char *s)
|
|
14 {
|
|
15 struct U r;
|
|
16 r.u = s;
|
|
17 return r;
|
|
18 }
|
|
19
|
|
20 void
|
|
21 bar (struct T *s, int a, int b)
|
|
22 {
|
|
23 s->a.a = a;
|
|
24 s->a.b = &s->a.a;
|
|
25 s->b.a = b;
|
|
26 s->b.b = &s->b.a;
|
|
27 }
|
|
28
|
|
29 int
|
|
30 main ()
|
|
31 {
|
|
32 struct T t;
|
|
33 struct U x = foo ("this is x");
|
|
34 struct S y, z;
|
131
|
35 y.b = n; /* { dg-final { gdb-test .+3 "t.a.a" "17" } } */
|
|
36 y.a = 0; /* { dg-final { gdb-test .+2 "*t.a.b" "17" } } */
|
|
37 bar (&t, 17, 21); /* { dg-final { gdb-test .+1 "t.b.a" "21" } } */
|
|
38 v++; /* { dg-final { gdb-test . "*t.b.b" "21" } } */
|
111
|
39 z = y;
|
|
40 return 0;
|
|
41 }
|