This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/81936] ICE in dwarf2out_die_ref_for_decl, at dwarf2out.c:5543
- From: "vries at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 23 Aug 2017 13:16:33 +0000
- Subject: [Bug debug/81936] ICE in dwarf2out_die_ref_for_decl, at dwarf2out.c:5543
- Auto-submitted: auto-generated
- References: <bug-81936-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81936
--- Comment #9 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Tom de Vries from comment #8)
> but found it doesn't work because flag_generate_offload is actually false.
>
> I'm now trying this (code snippet copied from symbol_table::compile), but
> I'm not sure if setting flag_generate_offload is the proper solution, and if
> so, where it should be inserted:
> ...
> diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
> index e8cc765095d..29a1d038b0e 100644
> --- a/gcc/cgraphunit.c
> +++ b/gcc/cgraphunit.c
> @@ -2586,6 +2586,10 @@ symbol_table::finalize_compilation_unit (void)
> current_function_decl = NULL;
> set_cfun (NULL);
>
> + /* Offloading requires LTO infrastructure. */
> + if (!in_lto_p && g->have_offload)
> + flag_generate_offload = 1;
> +
> /* Do not skip analyzing the functions if there were errors, we
> miss diagnostics for following functions otherwise. */
>
> ...
That didn't work since g->have_offload is not set yet. Setting it after
analyze_functions does work:
...
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index e8cc765095d..080451a44df 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -2614,6 +2614,10 @@ symbol_table::finalize_compilation_unit (void)
/* Gimplify and lower thunks. */
analyze_functions (/*first_time=*/false);
+ /* Offloading requires LTO infrastructure. */
+ if (!in_lto_p && g->have_offload)
+ flag_generate_offload = 1;
+
if (!seen_error ())
{
/* Emit early debug for reachable functions, and by consequence,
...
And then we run into the next ICE:
...
libgomp/testsuite/libgomp.c/pr66714.c:17:1: internal compiler error: in
output_loc_operands, at dwarf2out.c:2232
0x86f757 output_loc_operands
gcc/dwarf2out.c:2232
0x86f757 output_loc_sequence(dw_loc_descr_node*, int)
gcc/dwarf2out.c:2419
0x86ff61 output_die
gcc/dwarf2out.c:10038
0x86fa0a output_die
gcc/dwarf2out.c:10348
0x86fa0a output_die
gcc/dwarf2out.c:10348
0x871118 output_comp_unit
gcc/dwarf2out.c:10483
0x898408 dwarf2out_early_finish
gcc/dwarf2out.c:30597
0x7fe3b8 symbol_table::finalize_compilation_unit()
gcc/cgraphunit.c:2631
Please submit a full bug report,
...