re PR debug/49567 (ICE in mem_loc_descriptor due to typed DWARF stack changes)

PR debug/49567
	* dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up
	for non-MODE_INT modes instead of asserting the mode has MODE_INT
	class.

	* gcc.target/i386/pr49567.c: New test.

From-SVN: r175622
This commit is contained in:
Jakub Jelinek 2011-06-29 10:15:00 +02:00 committed by Jakub Jelinek
parent 946c8b23dd
commit a0f33d3a12
4 changed files with 27 additions and 1 deletions

View file

@ -1,3 +1,10 @@
2011-06-29 Jakub Jelinek <jakub@redhat.com>
PR debug/49567
* dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up
for non-MODE_INT modes instead of asserting the mode has MODE_INT
class.
2011-06-29 Georg-Johann Lay <avr@gjlay.de>
PR target/34734

View file

@ -14762,7 +14762,8 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode,
case SIGN_EXTEND:
case ZERO_EXTEND:
gcc_assert (GET_MODE_CLASS (mode) == MODE_INT);
if (GET_MODE_CLASS (mode) != MODE_INT)
break;
op0 = mem_loc_descriptor (XEXP (rtl, 0), GET_MODE (XEXP (rtl, 0)),
mem_mode, VAR_INIT_STATUS_INITIALIZED);
if (op0 == 0)

View file

@ -1,3 +1,8 @@
2011-06-29 Jakub Jelinek <jakub@redhat.com>
PR debug/49567
* gcc.target/i386/pr49567.c: New test.
2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/opt17.ad[sb]: New test.

View file

@ -0,0 +1,13 @@
/* PR debug/49567 */
/* { dg-do compile } */
/* { dg-options "-g -O2 -msse4" } */
#include <x86intrin.h>
__m128
foo (__m128i x)
{
__m128i y;
y = _mm_cvtepi16_epi32 (x);
return _mm_cvtepi32_ps (y);
}