/* PR100112 and dups. */ /* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-fre1-details -fdump-tree-optimized" } */ int *c, *b; void foo() { int *tem = b; *tem = 0; int *footem = c; c = footem; } void bar() { int *tem = b; int *bartem = c; *tem = 0; c = bartem; } /* We should elide the redundant store in foo, in bar it is not redundant since the *tem = 0 store might alias. */ /* { dg-final { scan-tree-dump "Deleted redundant store c = footem" "fre1" } } */ /* { dg-final { scan-tree-dump "c = bartem" "optimized" } } */