[patch] PR debug/46102 Disable -feliminate-dwarf2-dups when reading a PCH
Jakub Jelinek
jakub@redhat.com
Thu Feb 19 19:07:00 GMT 2015
On Thu, Feb 19, 2015 at 10:33:20AM -0800, Aldy Hernandez wrote:
> Well, any PCH file we generate will have some sort of early DIE in it (at
> the very least the compilation unit DIE) and we will read these in at PCH
> read-in time, obliterating whatever was already there. But most
> importantly, with the attached patch we will not use these
> DW_TAG_GNU_[BE]INCL* DIEs, since the reader will avoid reading the pch file.
> So, I don't think erroring out at output time is necessary.
>
> How does this look?
Looks reasonable to me, but I'd prefer to defer this to Jason as debug
maintainer.
> commit d90a408ad21aa0868cc13de24ea38e210ef78a68
> Author: Aldy Hernandez <aldyh@redhat.com>
> Date: Thu Feb 19 07:35:59 2015 -0800
>
> PR debug/46102
> * c-pch.c (c_common_valid_pch): Mark PCH file with
> -feliminate-dwarf2-dups as invalid.
>
> diff --git a/gcc/c-family/c-pch.c b/gcc/c-family/c-pch.c
> index 0ede92a..55163c9 100644
> --- a/gcc/c-family/c-pch.c
> +++ b/gcc/c-family/c-pch.c
> @@ -224,6 +224,19 @@ c_common_valid_pch (cpp_reader *pfile, const char *name, int fd)
> const char *pch_ident;
> struct c_pch_validity v;
>
> + /* We may have outputted a few DIEs corresponding to
> + DW_TAG_GNU_[BE]INCL. Reading the compiler state later will read
> + in these DIEs, and obliterate any DW_TAG_GNU_[BE]INCL the reader
> + may have generated itself. Do not read the PCH if this may
> + happen. */
> + if (flag_eliminate_dwarf2_dups)
> + {
> + if (cpp_get_options (pfile)->warn_invalid_pch)
> + cpp_error (pfile, CPP_DL_WARNING,
> + "%s: cannot be used with -feliminate-dwarf2-dups", name);
> + return 2;
> + }
> +
> /* Perform a quick test of whether this is a valid
> precompiled header for the current language. */
>
Jakub
More information about the Gcc-patches
mailing list