/* PR tree-optimization/56098 */ /* { dg-do compile } */ /* { dg-options "-O2 -fhoist-adjacent-loads -fdump-tree-optimized" } */ struct S { volatile int i; volatile int j; }; int bar (struct S *x, int y) { int r; if (y) r = x->i; else r = x->j; return r; } /* { dg-final { scan-tree-dump-not "r_\[0-9]* =.v. \[^\n\r]*;\[\n\r]* r_\[0-9]* =.v. " "optimized" } } */ /* { dg-final { cleanup-tree-dump "optimized" } } */