On Wed, May 29, 2019 at 12:10 PM Thomas De Schampheleire
<patrickdeping...@gmail.com> wrote:
>
> Hi Richard,

Sorry for the delay - I have bootstrapped/tested the patch and
installed it on trunk.
If there will be no complaints I plan to backport it for GCC 9.2 (you
may need to
remind me in a few weeks).

Thanks again,
Richard.

> El mar., 21 may. 2019 a las 16:57, Thomas De Schampheleire
> (<patrickdeping...@gmail.com>) escribió:
> >
> > From: Thomas De Schampheleire <thomas.de_schamphele...@nokia.com>
> >
> > In addition to making -feliminate-unused-debug-symbols work for the DWARF
> > format (see [1]), make this option the default. This behavior was the case
> > before, e.g. under gcc 4.9.x.
> > [1] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=269925
> >
> > This change requires some updates to test cases, which expected the previous
> > default of not eliminating unused debug symbols.
> >
> > gcc/ChangeLog:
> >
> > 2019-05-21  Thomas De Schampheleire  <thomas.de_schamphele...@nokia.com>
> >
> >         PR debug/86964
> >         * common.opt (feliminate-unused-debug-symbols): Enable by default.
> >         * doc/invoke.texi (Debugging Options): Document new default of
> >         -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
> >
> > gcc/testsuite/ChangeLog:
> >
> > 2019-05-21  Thomas De Schampheleire  <thomas.de_schamphele...@nokia.com>
> >
> >         PR debug/86964
> >         * g++.dg/debug/dwarf2/fesd-any.C: Use
> >         -fno-eliminate-unused-debug-symbols.
> >         * g++.dg/debug/dwarf2/fesd-baseonly.C: Likewise.
> >         * g++.dg/debug/dwarf2/fesd-none.C: Likewise.
> >         * g++.dg/debug/dwarf2/fesd-reduced.C: Likewise.
> >         * g++.dg/debug/dwarf2/fesd-sys.C: Likewise.
> >         * g++.dg/debug/dwarf2/inline-var-1.C: Likewise.
> >         * g++.dg/debug/enum-2.C: Likewise.
> >         * gcc.dg/debug/dwarf2/fesd-any.c: Likewise.
> >         * gcc.dg/debug/dwarf2/fesd-baseonly.c: Likewise.
> >         * gcc.dg/debug/dwarf2/fesd-none.c: Likewise.
> >         * gcc.dg/debug/dwarf2/fesd-reduced.c: Likewise.
> >         * gcc.dg/debug/dwarf2/fesd-sys.c: Likewise.
> > ---
> >  gcc/common.opt                                    | 2 +-
> >  gcc/doc/invoke.texi                               | 9 +++++----
> >  gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C      | 2 +-
> >  gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C | 2 +-
> >  gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C     | 2 +-
> >  gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C  | 2 +-
> >  gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C      | 2 +-
> >  gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C  | 2 +-
> >  gcc/testsuite/g++.dg/debug/enum-2.C               | 1 +
> >  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c      | 2 +-
> >  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c | 2 +-
> >  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c     | 2 +-
> >  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c  | 2 +-
> >  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c      | 2 +-
> >  14 files changed, 18 insertions(+), 16 deletions(-)
> >
> > diff --git a/gcc/common.opt b/gcc/common.opt
> > index d342c4f3749..0e72fd08ec4 100644
> > --- a/gcc/common.opt
> > +++ b/gcc/common.opt
> > @@ -1379,7 +1379,7 @@ Common Report Var(flag_ipa_sra) Init(0) Optimization
> >  Perform interprocedural reduction of aggregates.
> >
> >  feliminate-unused-debug-symbols
> > -Common Report Var(flag_debug_only_used_symbols)
> > +Common Report Var(flag_debug_only_used_symbols) Init(1)
> >  Perform unused symbol elimination in debug info.
> >
> >  feliminate-unused-debug-types
> > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> > index 5e3e8873d35..06c8c60f19e 100644
> > --- a/gcc/doc/invoke.texi
> > +++ b/gcc/doc/invoke.texi
> > @@ -388,7 +388,7 @@ Objective-C and Objective-C++ Dialects}.
> >  -fno-eliminate-unused-debug-types @gol
> >  -femit-struct-debug-baseonly  -femit-struct-debug-reduced @gol
> >  -femit-struct-debug-detailed@r{[}=@var{spec-list}@r{]} @gol
> > --feliminate-unused-debug-symbols  -femit-class-debug-always @gol
> > +-fno-eliminate-unused-debug-symbols  -femit-class-debug-always @gol
> >  -fno-merge-debug-strings  -fno-dwarf2-cfi-asm @gol
> >  -fvar-tracking  -fvar-tracking-assignments}
> >
> > @@ -7827,10 +7827,11 @@ confusion with @option{-gdwarf-@var{level}}.
> >  Instead use an additional @option{-g@var{level}} option to change the
> >  debug level for DWARF.
> >
> > -@item -feliminate-unused-debug-symbols
> > +@item -fno-eliminate-unused-debug-symbols
> >  @opindex feliminate-unused-debug-symbols
> > -Produce debugging information in stabs format (if that is supported),
> > -for only symbols that are actually used.
> > +@opindex fno-eliminate-unused-debug-symbols
> > +By default, no debug information is produced for symbols that are not 
> > actually
> > +used. Use this option if you want debug information for all symbols.
> >
> >  @item -femit-class-debug-always
> >  @opindex femit-class-debug-always
> > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C 
> > b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C
> > index a4a0b50ee50..5868ebc9c85 100644
> > --- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C
> > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C
> > @@ -1,5 +1,5 @@
> >  // { dg-do compile }
> > -// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=any" }
> > +// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=any 
> > -fno-eliminate-unused-debug-symbols" }
> >  // { dg-final { scan-assembler "timespec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
> > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C 
> > b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C
> > index 4f580ebd361..fe0016a4563 100644
> > --- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C
> > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C
> > @@ -1,5 +1,5 @@
> >  // { dg-do compile }
> > -// { dg-options "-gdwarf-2 -dA -femit-struct-debug-baseonly" }
> > +// { dg-options "-gdwarf-2 -dA -femit-struct-debug-baseonly 
> > -fno-eliminate-unused-debug-symbols" }
> >  // { dg-final { scan-assembler "timespec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
> > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C 
> > b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C
> > index 0af0a83d85f..c5a33967426 100644
> > --- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C
> > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C
> > @@ -1,5 +1,5 @@
> >  // { dg-do compile }
> > -// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=none" }
> > +// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=none 
> > -fno-eliminate-unused-debug-symbols" }
> >  // { dg-final { scan-assembler "timespec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
> > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C 
> > b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C
> > index a93b90f05ad..ba40f176375 100644
> > --- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C
> > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C
> > @@ -1,5 +1,5 @@
> >  // { dg-do compile }
> > -// { dg-options "-gdwarf-2 -dA -femit-struct-debug-reduced" }
> > +// { dg-options "-gdwarf-2 -dA -femit-struct-debug-reduced 
> > -fno-eliminate-unused-debug-symbols" }
> >  // { dg-final { scan-assembler "timespec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
> > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C 
> > b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C
> > index 95a9a31ff60..86eeb21cf10 100644
> > --- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C
> > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C
> > @@ -1,5 +1,5 @@
> >  // { dg-do compile }
> > -// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=sys" }
> > +// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=sys 
> > -fno-eliminate-unused-debug-symbols" }
> >  // { dg-final { scan-assembler "timespec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
> > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C 
> > b/gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C
> > index fc3e6fd435f..3b1c913edfc 100644
> > --- a/gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C
> > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C
> > @@ -1,5 +1,5 @@
> >  // { dg-do compile { target c++17 } }
> > -// { dg-options "-O -g -dA -gno-strict-dwarf" }
> > +// { dg-options "-O -g -dA -gno-strict-dwarf 
> > -fno-eliminate-unused-debug-symbols" }
> >  // { dg-require-weak "" }
> >  // { dg-final { scan-assembler-times "0x3\[^\n\r]* DW_AT_inline" 6 { xfail 
> > *-*-aix* } } }
> >  // { dg-final { scan-assembler-times "0x1\[^\n\r]* DW_AT_inline" 2 { xfail 
> > *-*-aix* } } }
> > diff --git a/gcc/testsuite/g++.dg/debug/enum-2.C 
> > b/gcc/testsuite/g++.dg/debug/enum-2.C
> > index d5501313d93..554de37c40a 100644
> > --- a/gcc/testsuite/g++.dg/debug/enum-2.C
> > +++ b/gcc/testsuite/g++.dg/debug/enum-2.C
> > @@ -1,5 +1,6 @@
> >  /* Verify that used enums are output.  */
> >  /* { dg-do compile } */
> > +/* { dg-options "-fno-eliminate-unused-debug-symbols" } */
> >  /* { dg-final { scan-assembler "JTI_MAX" } } */
> >
> >  int var;
> > diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c 
> > b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c
> > index 810788ae6e3..4062268e54c 100644
> > --- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c
> > +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c
> > @@ -1,5 +1,5 @@
> >  // { dg-do compile }
> > -// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=any" }
> > +// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=any 
> > -fno-eliminate-unused-debug-symbols" }
> >  // { dg-final { scan-assembler "timespec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
> > diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c 
> > b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c
> > index aefcb871509..fffdf04cfb6 100644
> > --- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c
> > +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c
> > @@ -1,5 +1,5 @@
> >  // { dg-do compile }
> > -// { dg-options "-gdwarf -dA -femit-struct-debug-baseonly" }
> > +// { dg-options "-gdwarf -dA -femit-struct-debug-baseonly 
> > -fno-eliminate-unused-debug-symbols" }
> >  // { dg-final { scan-assembler "timespec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
> > diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c 
> > b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c
> > index 193c05d6155..6fba51287ef 100644
> > --- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c
> > +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c
> > @@ -1,5 +1,5 @@
> >  // { dg-do compile }
> > -// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=none" }
> > +// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=none 
> > -fno-eliminate-unused-debug-symbols" }
> >  // { dg-final { scan-assembler "timespec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
> > diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c 
> > b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c
> > index ebbfc36672b..4209e30e3f9 100644
> > --- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c
> > +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c
> > @@ -1,5 +1,5 @@
> >  // { dg-do compile }
> > -// { dg-options "-gdwarf -dA -femit-struct-debug-reduced" }
> > +// { dg-options "-gdwarf -dA -femit-struct-debug-reduced 
> > -fno-eliminate-unused-debug-symbols" }
> >  // { dg-final { scan-assembler "timespec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
> > diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c 
> > b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c
> > index ad0a44a95b3..9c100d7cf91 100644
> > --- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c
> > +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c
> > @@ -1,5 +1,5 @@
> >  // { dg-do compile }
> > -// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=sys" }
> > +// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=sys 
> > -fno-eliminate-unused-debug-symbols" }
> >  // { dg-final { scan-assembler "timespec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
> >  // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
> > --
>
>
> Does this patch look better to you?
>
> Thanks,
> Thomas

Reply via email to