[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