diff options
Diffstat (limited to 'gcc-4.8/gcc/testsuite/gcc.c-torture/execute/pr57130.c')
-rw-r--r-- | gcc-4.8/gcc/testsuite/gcc.c-torture/execute/pr57130.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc-4.8/gcc/testsuite/gcc.c-torture/execute/pr57130.c b/gcc-4.8/gcc/testsuite/gcc.c-torture/execute/pr57130.c new file mode 100644 index 000000000..611320325 --- /dev/null +++ b/gcc-4.8/gcc/testsuite/gcc.c-torture/execute/pr57130.c @@ -0,0 +1,21 @@ +/* PR rtl-optimization/57130 */ + +struct S { int a, b, c, d; } s[2] = { { 6, 8, -8, -5 }, { 0, 2, -1, 2 } }; + +__attribute__((noinline, noclone)) void +foo (struct S r) +{ + static int cnt; + if (__builtin_memcmp (&r, &s[cnt++], sizeof r) != 0) + __builtin_abort (); +} + +int +main () +{ + struct S r = { 6, 8, -8, -5 }; + foo (r); + r = (struct S) { 0, 2, -1, 2 }; + foo (r); + return 0; +} |