1 #include "analyzer-decls.h"
26 struct s1 x
= {'A', 'B', 'C', 'D'};
27 __analyzer_eval (x
.a
== 'A'); /* { dg-warning "TRUE" } */
28 __analyzer_eval (x
.b
== 'B'); /* { dg-warning "TRUE" } */
29 __analyzer_eval (x
.c
== 'C'); /* { dg-warning "TRUE" } */
30 __analyzer_eval (x
.d
== 'D'); /* { dg-warning "TRUE" } */
31 __analyzer_eval (((struct s2
*)&x
)->arr
[0] == 'A'); /* { dg-warning "TRUE" } */
32 __analyzer_eval (((struct s2
*)&x
)->arr
[1] == 'B'); /* { dg-warning "TRUE" } */
33 __analyzer_eval (((struct s2
*)&x
)->arr
[2] == 'C'); /* { dg-warning "TRUE" } */
34 __analyzer_eval (((struct s2
*)&x
)->arr
[3] == 'D'); /* { dg-warning "TRUE" } */
35 struct s3
*p3
= (struct s3
*)&x
;
36 __analyzer_eval (p3
->arr
[0].a
== 'A'); /* { dg-warning "TRUE" } */
37 __analyzer_eval (p3
->arr
[0].b
== 'B'); /* { dg-warning "TRUE" } */
38 __analyzer_eval (p3
->arr
[1].a
== 'C'); /* { dg-warning "TRUE" } */
39 __analyzer_eval (p3
->arr
[1].b
== 'D'); /* { dg-warning "TRUE" } */
41 ((struct s2
*)&x
)->arr
[1] = '#';
42 __analyzer_eval (((struct s2
*)&x
)->arr
[1] == '#'); /* { dg-warning "TRUE" } */
43 __analyzer_eval (x
.b
== '#'); /* { dg-warning "TRUE" } */
44 __analyzer_eval (p3
->arr
[0].b
== '#'); /* { dg-warning "TRUE" } */
49 struct s2 x
= {{'A', 'B', 'C', 'D'}};
50 __analyzer_eval (x
.arr
[0] == 'A'); /* { dg-warning "TRUE" } */
51 __analyzer_eval (x
.arr
[1] == 'B'); /* { dg-warning "TRUE" } */
52 __analyzer_eval (x
.arr
[2] == 'C'); /* { dg-warning "TRUE" } */
53 __analyzer_eval (x
.arr
[3] == 'D'); /* { dg-warning "TRUE" } */
54 struct s1
*p
= (struct s1
*)&x
;
55 __analyzer_eval (p
->a
== 'A'); /* { dg-warning "TRUE" } */
56 __analyzer_eval (p
->b
== 'B'); /* { dg-warning "TRUE" } */
57 __analyzer_eval (p
->c
== 'C'); /* { dg-warning "TRUE" } */
58 __analyzer_eval (p
->d
== 'D'); /* { dg-warning "TRUE" } */
63 struct s3 x
= {'A', 'B', 'C', 'D'};
64 __analyzer_eval (x
.arr
[0].a
== 'A'); /* { dg-warning "TRUE" } */
65 __analyzer_eval (x
.arr
[0].b
== 'B'); /* { dg-warning "TRUE" } */
66 __analyzer_eval (x
.arr
[1].a
== 'C'); /* { dg-warning "TRUE" } */
67 __analyzer_eval (x
.arr
[1].b
== 'D'); /* { dg-warning "TRUE" } */
68 struct s1
*p1
= (struct s1
*)&x
;
69 __analyzer_eval (p1
->a
== 'A'); /* { dg-warning "TRUE" } */
70 __analyzer_eval (p1
->b
== 'B'); /* { dg-warning "TRUE" } */
71 __analyzer_eval (p1
->c
== 'C'); /* { dg-warning "TRUE" } */
72 __analyzer_eval (p1
->d
== 'D'); /* { dg-warning "TRUE" } */
73 struct s2
*p2
= (struct s2
*)&x
;
74 __analyzer_eval (p2
->arr
[0] == 'A'); /* { dg-warning "TRUE" } */
75 __analyzer_eval (p2
->arr
[1] == 'B'); /* { dg-warning "TRUE" } */
76 __analyzer_eval (p2
->arr
[2] == 'C'); /* { dg-warning "TRUE" } */
77 __analyzer_eval (p2
->arr
[3] == 'D'); /* { dg-warning "TRUE" } */