[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