/* { dg-do compile } */ /* { dg-options "-O -fdump-tree-fre1" } */ void bar (); void foo (int pred, int *other) { *other = 0; if (*other) goto cnt; if (pred) { *other = 1; cnt: if (!pred) bar (); } } /* The first VN pass should figure that if (!pred) is false because if (*other) is and thus the predicate test is redundant. */ /* { dg-final { scan-tree-dump-not "bar" "fre1" } } */