1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-dom3" } */
6 typedef struct rtx_def *rtx;
8 typedef struct rtvec_def *rtvec;
10 typedef union tree_node *tree;
15 unsigned int in_struct:1;
27 struct tree_common common;
28 struct tree_decl decl;
31 store_expr (exp, target, want_value)
36 if (exp->common.code == 42)
38 else if (queued_subexp_p (target))
46 if (target->code && (__extension__({target;})->in_struct));
49 if ((target != (exp->decl.rtl
52 : (make_decl_rtl (exp, 0), exp->decl.rtl))
58 /* All paths to the test "target != 0" occuring in the final IF statement
59 dereference target. Thus target can not have the value zero at that
60 point and the test should have been eliminated. */
61 /* ??? The dominator walker (A) doesn't merge this data at joins and
62 (B) only looks at immediate dominators, and only queued_subexp_p
63 immediately dominates the comparison in question. We need something
65 /* { dg-final { scan-tree-dump-times "target.*!= 0" 0 "dom3" { xfail *-*-* } } } */