/* { dg-do compile } */ /* { dg-options "-O -fdump-tree-ccp1" } */ struct b { int data[16]; }; int foo (struct b *x) { int *a = x->data; int *b = ((int*)x) + 4; return b - a; } int bar (struct b *x) { int *a = x->data; int *b = ((int*)x) + 4; if (a != b) return 1; return 0; } int baz (struct b *x) { int *a = x->data; int *b = ((int*)x) + 4; return (a != b); } /* { dg-final { scan-tree-dump "return 4;" "ccp1" } } */ /* { dg-final { scan-tree-dump-times "return 1;" 2 "ccp1" } } */