[OE-core] [PATCH] gcc: fix ICE in dwarf2out_var_location

Peter A. Bigot pab at pabigot.com
Wed Oct 29 10:59:54 UTC 2014


On 10/28/2014 10:41 PM, Khem Raj wrote:
> On Tue, Oct 28, 2014 at 7:34 PM,  <jackie.huang at windriver.com> wrote:
>> From: Jackie Huang <jackie.huang at windriver.com>
>>
>> Fixed the ICE:
>> internal compiler error: in dwarf2out_var_location, at dwarf2out.c:21261
>>
> this looks ok. but we need the test case too. and a nit more documentation

Agreed.  We're getting a lot of Wind River patches these days that are 
pretty sparse on context and justification.

For backport patches to GCC and most other projects, I'd really love to 
see them provided by cloning the upstream repository and using 
format-patch on the upstream commit that's being backported.  This 
practice of discarding all that relevant information in favor of a terse 
submitter-defined description makes it difficult to keep the OE patch 
set current on upstream updates and trust in the appropriateness of the 
patch.  Add only your sign-off and the Upstream-Status with a reference 
to the upstream bugreport.

You might look at gcc-4.9's OE patch 
0055-PR-rtl-optimization-61801.patch for an example.

Peter

>
>> Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
>> ---
>>   meta/recipes-devtools/gcc/gcc-4.9.inc              |  1 +
>>   .../0058-gcc-ice-dwarf2out_var_location.patch      | 31 ++++++++++++++++++++++
>>   2 files changed, 32 insertions(+)
>>   create mode 100644 meta/recipes-devtools/gcc/gcc-4.9/0058-gcc-ice-dwarf2out_var_location.patch
>>
>> diff --git a/meta/recipes-devtools/gcc/gcc-4.9.inc b/meta/recipes-devtools/gcc/gcc-4.9.inc
>> index 9a66cd2..89c405a 100644
>> --- a/meta/recipes-devtools/gcc/gcc-4.9.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-4.9.inc
>> @@ -71,6 +71,7 @@ SRC_URI = "\
>>       file://0054-gcc-Makefile.in-fix-parallel-building-failure.patch \
>>       file://0055-PR-rtl-optimization-61801.patch \
>>       file://0056-top-level-reorder_gcc-bug-61144.patch \
>> +    file://0058-gcc-ice-dwarf2out_var_location.patch \
>>   "
>>   SRC_URI[md5sum] = "fddf71348546af523353bd43d34919c1"
>>   SRC_URI[sha256sum] = "d334781a124ada6f38e63b545e2a3b8c2183049515a1abab6d513f109f1d717e"
>> diff --git a/meta/recipes-devtools/gcc/gcc-4.9/0058-gcc-ice-dwarf2out_var_location.patch b/meta/recipes-devtools/gcc/gcc-4.9/0058-gcc-ice-dwarf2out_var_location.patch
>> new file mode 100644
>> index 0000000..28e7756
>> --- /dev/null
>> +++ b/meta/recipes-devtools/gcc/gcc-4.9/0058-gcc-ice-dwarf2out_var_location.patch
>> @@ -0,0 +1,31 @@
>> +From d358f8ba2e530850795adce19bd00b57139d9397 Mon Sep 17 00:00:00 2001
>> +From: Baoshan Pang <baoshan.pang at windriver.com>
>> +Date: Tue, 16 Sep 2014 13:32:13 -0700
>> +Subject: [PATCH] Fix ICE in dwarf2out_var_location
>> +
>> +Upstream-Status: Backport
>> +
>> +Signed-off-by: Baoshan Pang <baoshan.pang at windriver.com>
>> +---
>> + gcc/dwarf2out.c |    5 +++++
>> + 1 file changed, 5 insertions(+)
>> +
>> +diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
>> +index 1df565b..0e1557d 100644
>> +--- a/gcc/dwarf2out.c
>> ++++ b/gcc/dwarf2out.c
>> +@@ -21255,6 +21255,11 @@ dwarf2out_var_location (rtx loc_note)
>> +       ca_loc->call_arg_loc_note = loc_note;
>> +       ca_loc->next = NULL;
>> +       ca_loc->label = last_label;
>> ++      while(prev && !CALL_P(prev) && !(GET_CODE (PATTERN (prev)) == SEQUENCE
>> ++                                     && CALL_P (XVECEXP (PATTERN (prev), 0, 0)))){
>> ++      gcc_assert(NONJUMP_INSN_P (prev));
>> ++      prev = prev_real_insn (prev);
>> ++      }
>> +       gcc_assert (prev
>> +                 && (CALL_P (prev)
>> +                     || (NONJUMP_INSN_P (prev)
>> +--
>> +1.7.9.5
>> +
>> --
>> 2.0.0
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list