| /* PR rtl-optimization/54921 */ |
| /* { dg-do run } */ |
| /* { dg-options "-Os -fno-omit-frame-pointer -fsched2-use-superblocks -ftree-slp-vectorize" } */ |
| /* { dg-additional-options "-fstack-protector" { target fstack_protector } } */ |
| |
| struct A |
| { |
| int a; |
| char b[32]; |
| } a, b; |
| |
| __attribute__((noinline, noclone)) |
| struct A |
| bar (int x) |
| { |
| struct A r; |
| static int n; |
| r.a = ++n; |
| __builtin_memset (r.b, 0, sizeof (r.b)); |
| r.b[0] = x; |
| return r; |
| } |
| |
| int |
| main () |
| { |
| a = bar (3); |
| b = bar (4); |
| if (a.a != 1 || a.b[0] != 3 || b.a != 2 || b.b[0] != 4) |
| __builtin_abort (); |
| return 0; |
| } |