/* { dg-do compile } */ /* { dg-options "-O1 -fdump-tree-forwprop1 -W -Wall" } */ int i; int foo(void) { volatile int *p = (volatile int *)&i; return *p + *p; } /* We should not convert the cast to a VCE in forwprop1 as we have a volatile reference. */ /* { dg-final { scan-tree-dump-times "VIEW_CONVERT_EXPR" 0 "forwprop1"} } */ /* { dg-final { scan-tree-dump-times "={v}" 2 "forwprop1"} } */ /* { dg-final { cleanup-tree-dump "forwprop1" } } */