[OE-core] [PATCH] gcc: fix ICE in dwarf2out_var_location
Khem Raj
raj.khem at gmail.com
Wed Oct 29 03:41:09 UTC 2014
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
> 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