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
This commit is contained in:
Jakub Jelinek 2014-03-28 20:31:17 +01:00 committed by Jakub Jelinek
parent 27f083b845
commit ff76f4e2c0
4 changed files with 25 additions and 1 deletions

View File

@ -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.

View File

@ -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
{

View File

@ -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.

View File

@ -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);
}