1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-vrp1" } */
3 
4 extern void abort (void);
5 
6 union tree_node;
7 typedef union tree_node *tree;
8 struct tree_common
9 {
10   int code;
11 };
12 struct tree_list
13 {
14   tree purpose;
15 };
16 union tree_node
17 {
18   struct tree_common common;
19   struct tree_list list;
20 };
21 void c_simplify_stmt (tree *);
22 void
simplify_condition(cond_p)23 simplify_condition (cond_p)
24      tree *cond_p;
25 {
26   tree decl;
27   tree cond = *cond_p;
28   if (cond->common.code != 42)
29     abort ();
30   decl = cond->list.purpose;
31   if (cond->common.code != 42)
32     abort ();
33   c_simplify_stmt (&decl);
34 }
35 
36 /* There should be exactly one IF conditional.  */
37 /* { dg-final { scan-tree-dump-times "if " 1 "vrp1" } } */
38