1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -fdump-tree-dse1-details -fno-short-enums" } */ 3 4 enum constraint_expr_type 5 { 6 SCALAR, DEREF, ADDRESSOF 7 }; 8 typedef struct constraint_expr 9 { 10 enum constraint_expr_type type; 11 unsigned int var; 12 long offset; 13 } constraint_expr ; 14 typedef struct constraint 15 { 16 struct constraint_expr lhs; 17 struct constraint_expr rhs; 18 } constraint; 19 static _Bool constraint_expr_equal(struct constraint_expr x,struct constraint_expr y)20constraint_expr_equal (struct constraint_expr x, struct constraint_expr y) 21 { 22 return x.type == y.type && x.var == y.var && x.offset == y.offset; 23 } 24 25 _Bool constraint_equal(struct constraint a,struct constraint b)26constraint_equal (struct constraint a, struct constraint b) 27 { 28 return constraint_expr_equal (a.lhs, b.lhs) 29 && constraint_expr_equal (a.rhs, b.rhs); 30 } 31 32 /* { dg-final { scan-tree-dump-times "Deleted dead store: x = " 1 "dse1" } } */ 33 /* { dg-final { scan-tree-dump-times "Deleted dead store: y = " 1 "dse1" } } */ 34 35