mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-23 00:51:00 +08:00
re PR debug/25023 (ICE in def_cfa_1, at dwarf2out.c:792)
PR debug/25023 * config/i386/i386.c (ix86_force_to_memory): Always use SImode push for HImode in -m32. (ix86_free_from_memory): Likewise. * gcc.dg/pr25023.c: New test. From-SVN: r108537
This commit is contained in:
parent
4f9a6d459f
commit
69642eaeaf
@ -1,3 +1,10 @@
|
||||
2005-12-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/25023
|
||||
* config/i386/i386.c (ix86_force_to_memory): Always use
|
||||
SImode push for HImode in -m32.
|
||||
(ix86_free_from_memory): Likewise.
|
||||
|
||||
2005-12-14 Richard Sandiford <richard@codesourcery.com>
|
||||
|
||||
* gcc/config/arm/arm.md: Provide a big-endian version of the
|
||||
|
@ -15790,9 +15790,8 @@ ix86_force_to_memory (enum machine_mode mode, rtx operand)
|
||||
}
|
||||
break;
|
||||
case HImode:
|
||||
/* It is better to store HImodes as SImodes. */
|
||||
if (!TARGET_PARTIAL_REG_STALL)
|
||||
operand = gen_lowpart (SImode, operand);
|
||||
/* Store HImodes as SImodes. */
|
||||
operand = gen_lowpart (SImode, operand);
|
||||
/* FALLTHRU */
|
||||
case SImode:
|
||||
emit_insn (
|
||||
@ -15820,8 +15819,6 @@ ix86_free_from_memory (enum machine_mode mode)
|
||||
|
||||
if (mode == DImode || TARGET_64BIT)
|
||||
size = 8;
|
||||
else if (mode == HImode && TARGET_PARTIAL_REG_STALL)
|
||||
size = 2;
|
||||
else
|
||||
size = 4;
|
||||
/* Use LEA to deallocate stack space. In peephole2 it will be converted
|
||||
|
@ -1,3 +1,8 @@
|
||||
2005-12-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/25023
|
||||
* gcc.dg/pr25023.c: New test.
|
||||
|
||||
2005-12-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* g++.old-deja/g++.brendan/redecl1.C,
|
||||
|
12
gcc/testsuite/gcc.dg/pr25023.c
Normal file
12
gcc/testsuite/gcc.dg/pr25023.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* PR debug/25023 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2" } */
|
||||
/* { dg-options "-O2 -mtune=i686" { target { { i?86-*-* || x86_64-*-* } && ilp32 } } } */
|
||||
|
||||
extern unsigned char v;
|
||||
|
||||
float
|
||||
foo (void)
|
||||
{
|
||||
return v;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user