diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-06-28 20:31:42 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-06-28 20:31:42 +0200 |
commit | 6a20b538f2a02e01b311af1dade9cea6a58d815e (patch) | |
tree | 1be87707017143ec34f68b003b3c04ca10dcc4b5 /gcc/testsuite/gcc.c-torture | |
parent | 0f0f4f914dc0c6667b1ee57ca9461fc26ec67bb3 (diff) | |
download | gcc-6a20b538f2a02e01b311af1dade9cea6a58d815e.zip gcc-6a20b538f2a02e01b311af1dade9cea6a58d815e.tar.gz gcc-6a20b538f2a02e01b311af1dade9cea6a58d815e.tar.bz2 |
re PR middle-end/71626 (ICE at -O1 and above on x86_64-linux-gnu (in output_constant_pool_2, at varasm.c:3837))
PR middle-end/71626
* config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
a constant, force its SUBREG_REG into memory or register instead
of whole op1.
* gcc.c-torture/execute/pr71626-1.c: New test.
* gcc.c-torture/execute/pr71626-2.c: New test.
From-SVN: r237826
Diffstat (limited to 'gcc/testsuite/gcc.c-torture')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/pr71626-1.c | 19 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/pr71626-2.c | 4 |
2 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr71626-1.c b/gcc/testsuite/gcc.c-torture/execute/pr71626-1.c new file mode 100644 index 0000000..26cfa96 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr71626-1.c @@ -0,0 +1,19 @@ +/* PR middle-end/71626 */ + +typedef __INTPTR_TYPE__ V __attribute__((__vector_size__(sizeof (__INTPTR_TYPE__)))); + +__attribute__((noinline, noclone)) V +foo () +{ + V v = { (__INTPTR_TYPE__) foo }; + return v; +} + +int +main () +{ + V v = foo (); + if (v[0] != (__INTPTR_TYPE__) foo) + __builtin_abort (); + return 0; +} diff --git a/gcc/testsuite/gcc.c-torture/execute/pr71626-2.c b/gcc/testsuite/gcc.c-torture/execute/pr71626-2.c new file mode 100644 index 0000000..4a27c54 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr71626-2.c @@ -0,0 +1,4 @@ +/* PR middle-end/71626 */ +/* { dg-additional-options "-fpic" { target fpic } } */ + +#include "pr71626-1.c" |