diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-03-28 20:31:17 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-03-28 20:31:17 +0100 |
commit | ff76f4e2c026de44df33189825ae3f2b7d582f1a (patch) | |
tree | 4267ddb4a6d600efeb689ab64e86bbda647b23fc /gcc | |
parent | 27f083b84545e70a567571ccd44adbb7c2fec10a (diff) | |
download | gcc-ff76f4e2c026de44df33189825ae3f2b7d582f1a.zip gcc-ff76f4e2c026de44df33189825ae3f2b7d582f1a.tar.gz gcc-ff76f4e2c026de44df33189825ae3f2b7d582f1a.tar.bz2 |
re PR target/60693 (ICE on funny memcpy)
PR target/60693
* config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
also if addr has VOIDmode.
* gcc.target/i386/pr60693.c: New test.
From-SVN: r208915
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr60693.c | 13 |
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8434f04..5e1879d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-03-28 Jakub Jelinek <jakub@redhat.com> + + PR target/60693 + * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg + also if addr has VOIDmode. + 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 842be68..328fe40 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -22755,7 +22755,7 @@ counter_mode (rtx count_exp) static rtx ix86_copy_addr_to_reg (rtx addr) { - if (GET_MODE (addr) == Pmode) + if (GET_MODE (addr) == Pmode || GET_MODE (addr) == VOIDmode) return copy_addr_to_reg (addr); else { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f43bd84..f650e3d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-03-28 Jakub Jelinek <jakub@redhat.com> + + PR target/60693 + * gcc.target/i386/pr60693.c: New test. + 2014-03-28 Vishnu K S <Vishnu.k_s@atmel.com> * gcc.dg/pr59940.c (si): Use 32-bit SI mode instead of int. diff --git a/gcc/testsuite/gcc.target/i386/pr60693.c b/gcc/testsuite/gcc.target/i386/pr60693.c new file mode 100644 index 0000000..e6033a7 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr60693.c @@ -0,0 +1,13 @@ +/* PR target/60693 */ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +void bar (char *); + +void +foo (void) +{ + char buf[4096]; + __builtin_memcpy (buf, (void *) 0x8000, 4096); + bar (buf); +} |