From a0f33d3a128be9cc917198f93a13d451795b8175 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 29 Jun 2011 10:15:00 +0200 Subject: [PATCH] re PR debug/49567 (ICE in mem_loc_descriptor due to typed DWARF stack changes) PR debug/49567 * dwarf2out.c (mem_loc_descriptor) : 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 --- gcc/ChangeLog | 7 +++++++ gcc/dwarf2out.c | 3 ++- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/i386/pr49567.c | 13 +++++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr49567.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 323c17954b1..91c23f2a20c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-06-29 Jakub Jelinek + + PR debug/49567 + * dwarf2out.c (mem_loc_descriptor) : Give up + for non-MODE_INT modes instead of asserting the mode has MODE_INT + class. + 2011-06-29 Georg-Johann Lay PR target/34734 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 3d63d7b8e3c..8ff5c1e01c5 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -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) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 46419f307fd..d327e4f8fea 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-06-29 Jakub Jelinek + + PR debug/49567 + * gcc.target/i386/pr49567.c: New test. + 2011-06-28 Eric Botcazou * gnat.dg/opt17.ad[sb]: New test. diff --git a/gcc/testsuite/gcc.target/i386/pr49567.c b/gcc/testsuite/gcc.target/i386/pr49567.c new file mode 100644 index 00000000000..309deb479ec --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr49567.c @@ -0,0 +1,13 @@ +/* PR debug/49567 */ +/* { dg-do compile } */ +/* { dg-options "-g -O2 -msse4" } */ + +#include + +__m128 +foo (__m128i x) +{ + __m128i y; + y = _mm_cvtepi16_epi32 (x); + return _mm_cvtepi32_ps (y); +} -- 2.30.2