libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / ssa-dse-26.c
blob1d01392c5957b3125f17425992228da53884a1fe
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-esra -fno-short-enums -fno-tree-fre" } */
3 /* { dg-skip-if "we want a BIT_FIELD_REF from fold_truth_andor" { ! lp64 } } */
4 /* { dg-skip-if "temporary variable names are not x and y" { mmix-knuth-mmixware } } */
6 enum constraint_expr_type
8 SCALAR, DEREF, ADDRESSOF
9 };
10 typedef struct constraint_expr
12 enum constraint_expr_type type;
13 unsigned int var;
14 long offset;
15 } constraint_expr ;
16 typedef struct constraint
18 struct constraint_expr lhs;
19 struct constraint_expr rhs;
20 } constraint;
21 static _Bool
22 constraint_expr_equal (struct constraint_expr x, struct constraint_expr y)
24 return x.type == y.type && x.var == y.var && x.offset == y.offset;
27 _Bool
28 constraint_equal (struct constraint a, struct constraint b)
30 return constraint_expr_equal (a.lhs, b.lhs)
31 && constraint_expr_equal (a.rhs, b.rhs);
34 /* { dg-final { scan-tree-dump-not "x = " "esra" } } */
35 /* { dg-final { scan-tree-dump-not "y = " "esra" } } */