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

jackie.huang at windriver.com jackie.huang at windriver.com
Wed Oct 29 02:34:04 UTC 2014


From: Jackie Huang <jackie.huang at windriver.com>

Fixed the ICE:
internal compiler error: in dwarf2out_var_location, at dwarf2out.c:21261

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




More information about the Openembedded-core mailing list