/* { dg-do compile } */ /* { dg-options "-fdump-tree-original" } */ char c[4] __attribute__ ((aligned (4))); struct S { char c1; char c2; char c3; char c4; }; int f1 (void) { return 3 & (__SIZE_TYPE__)&c[1]; } int f2 (void) { return 3 & (__SIZE_TYPE__)&((struct S *)&c)->c2; } /* { dg-final { scan-tree-dump-times "\& 3" 0 "original" } } */ /* { dg-final { scan-tree-dump-times "return 1" 2 "original" } } */ /* { dg-final { cleanup-tree-dump "original" } } */