This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] DWARF: remove pessimistic DWARF version checks for imported entities
- From: Dominique d'Humières <dominiq at lps dot ens dot fr>
- To: Jason Merrill <jason at redhat dot com>
- Cc: Pierre-Marie de Rodat <derodat at adacore dot com>, gcc-patches List <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 29 Sep 2016 15:16:09 +0200
- Subject: Re: [PATCH] DWARF: remove pessimistic DWARF version checks for imported entities
- Authentication-results: sourceware.org; auth=none
- References: <20160818093323.31600-1-derodat@adacore.com> <CADzB+2nfn345g_o2vuZU4Pn2aLayao_6h2y71TVi+nfVh7k4FQ@mail.gmail.com>
I have bootstrapped revision r240599 with the patch https://gcc.gnu.org/ml/gcc-patches/2016-08/msg01315.html without any problem. However compiling the following Fortran tests
FAIL: gfortran.dg/binding_label_tests_16.f03 -g (internal compiler error)
FAIL: gfortran.dg/module_commons_3.f90 -g (internal compiler error)
FAIL: gfortran.dg/module_equivalence_1.f90 -g (internal compiler error)
FAIL: gfortran.dg/use_11.f90 -g (internal compiler error)
FAIL: gfortran.dg/use_only_1.f90 -g (internal compiler error)
FAIL: gfortran.dg/widechar_5.f90 -g (internal compiler error)
FAIL: libgomp.fortran/udr15.f90 -g (internal compiler error)
are giving an ICE with -g of the kind
internal compiler error: in dwarf2out_imported_module_or_decl, at dwarf2out.c:24070
corresponding to
gcc_assert (scope_die->die_child);
The Ada test gnat.dg/debug7.adb is also failing with
FAIL: gnat.dg/debug7.adb (test for excess errors)
Excess errors:
gnat1: incorrect object file extension
Dominique
> Le 28 sept. 2016 à 17:44, Jason Merrill <jason@redhat.com> a écrit :
>
> On Thu, Aug 18, 2016 at 5:33 AM, Pierre-Marie de Rodat
> <derodat@adacore.com> wrote:
>> A check in dwarf2out_imported_module_or_decl prevents valid strict
>> DWARF2 constructs such as DW_TAG_imported_declaration from being emitted
>> in dwarf2out_imported_module_or_decl_1.
>>
>> The latter already protects the emission of newer DWARF tags with
>> appropriate checks, so the one in the former is redundant and
>> pessimistic. This function is already called from places like
>> process_scope_var, which are not protected anyway.
>>
>> This patch removes the check in dwarf2out_imported_module_or_decl so
>> that tags like DW_TAG_imported_declaration are emitted even in strict
>> DWARF2 mode.
>>
>> Bootstrapped and regtested on x86_64-linux, no regression.
>
> This check was added for bug 41405, a Darwin bootstrap problem.
> Dominique, can you verify that the compiler still bootstraps with this
> change? OK if so.
>
> Jason