| /* PR tree-optimization/93582 */ |
| /* { dg-do compile { target lp64 } } */ |
| /* { dg-options "-O2 -fdump-tree-fre1" } */ |
| /* { dg-final { scan-tree-dump "return 9223372036854775806;" "fre1" } } */ |
| |
| union U { struct A { unsigned long long a : 1, b : 62, c : 1; } a; unsigned long long i; }; |
| |
| unsigned long long |
| foo (char *p) |
| { |
| __builtin_memset (p - 0xfffffffffffffffULL, 0, 0xffffffffffffffeULL); |
| __builtin_memset (p + 1, 0, 0xffffffffffffffeULL); |
| union U *q = (union U *) (void *) (p - 4); |
| q->a.b = -1; |
| return q->i; |
| } |