Re: [PATCHv2] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]

2019-05-31 Thread Thomas De Schampheleire
On Fri, May 31, 2019, 10:23 Richard Biener 
wrote:

> On Wed, May 29, 2019 at 12:10 PM Thomas De Schampheleire
>  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.

I think I read somewhere that 7.4 is the last 7.x release, is that correct?

But what about 8.x? If there will be a new release I think these patches
should be backported too, no? After all, it's part of a regression.

In what location can you see such info about which branches and releases
are expected, latest release in a stream, etc?

Best regards
Thomas


Re: [PATCHv2] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]

2019-05-29 Thread Thomas De Schampheleire
Hi Richard,

El mar., 21 may. 2019 a las 16:57, Thomas De Schampheleire
() escribió:
>
> From: Thomas De Schampheleire 
>
> 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  
>
> 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  
>
> 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-o

[PATCHv2] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]

2019-05-21 Thread Thomas De Schampheleire
From: Thomas De Schampheleire 

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  

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  

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-ba

Re: [PATCH] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]

2019-05-17 Thread Thomas De Schampheleire
On Fri, May 17, 2019, 11:57 Richard Biener 
wrote:

> On Fri, May 17, 2019 at 9:42 AM Thomas De Schampheleire
>  wrote:
> >
> > Hi Richard,
> >
> > El jue., 16 may. 2019 a las 14:41, Richard Biener
> > () escribió:
> > >
> > > On Thu, May 16, 2019 at 11:20 AM Thomas De Schampheleire
> > >  wrote:
> > > >
> > > > From: Thomas De Schampheleire 
> > > >
> > > > 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
> > >
> > > I have tested this patch and it causes a few FAILs, eventually hinting
> > > at implementation issues:
> > >
> > > === g++ tests ===
> > >
> > >
> > > Running target unix
> > > FAIL: g++.dg/debug/enum-2.C -gstabs -O2  scan-assembler JTI_MAX
> > > FAIL: g++.dg/debug/enum-2.C -gstabs -O3  scan-assembler JTI_MAX
> > > FAIL: g++.dg/debug/enum-2.C -gstabs+ -O2  scan-assembler JTI_MAX
> > > FAIL: g++.dg/debug/enum-2.C -gstabs+ -O3  scan-assembler JTI_MAX
> > > FAIL: g++.dg/debug/enum-2.C -gstabs+3 -O2  scan-assembler JTI_MAX
> > > FAIL: g++.dg/debug/enum-2.C -gstabs+3 -O3  scan-assembler JTI_MAX
> > > FAIL: g++.dg/debug/enum-2.C -gstabs3 -O2  scan-assembler JTI_MAX
> > > FAIL: g++.dg/debug/enum-2.C -gstabs3 -O3  scan-assembler JTI_MAX
> > >
> > > maybe expected (stabs)
> > >
> > > FAIL: g++.dg/debug/dwarf2/fesd-any.C  -std=gnu++14  scan-assembler
> field_head_or
> > > dy_defn_fld_head.*DW_AT_name
> > > FAIL: g++.dg/debug/dwarf2/fesd-any.C  -std=gnu++14  scan-assembler
> field_head_or
> > > dy_defn_ptr_head.*DW_AT_name
> > > FAIL: g++.dg/debug/dwarf2/fesd-any.C  -std=gnu++14  scan-assembler
> field_head_or
> > > dy_defn_ref_head.*DW_AT_name
> > > FAIL: g++.dg/debug/dwarf2/fesd-any.C  -std=gnu++14  scan-assembler
> field_head_or
> > > dy_defn_var_head_fld.*DW_AT_name
> > > ... more ...
> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++14
> scan-assembler gstruct_
> > > head_ordy_defn_var_head.*DW_AT_name
> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++14
> scan-assembler gstruct_
> > > head_tmpl_defn_var_head.*DW_AT_name
> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++17
> scan-assembler gstruct_
> > > head_ordy_defn_var_head.*DW_AT_name
> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++17
> scan-assembler gstruct_
> > > head_tmpl_defn_var_head.*DW_AT_name
> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++98
> scan-assembler gstruct_
> > > head_ordy_defn_var_head.*DW_AT_name
> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++98
> > > scan-assembler gstruct_head_tmpl_defn_var_head.*DW_AT_name
> > > FAIL: g++.dg/debug/dwarf2/fesd-none.C  -std=gnu++14  scan-assembler
> > > gstruct_head_ordy_defn_var_head.*DW_AT_name
> > > FAIL: g++.dg/debug/dwarf2/fesd-none.C  -std=gnu++14  scan-assembler
> > > gstruct_head_tmpl_defn_var_head.*DW_AT_name
> > > ... more fesd-* testcases FAIL ...
> > > FAIL: g++.dg/debug/dwarf2/inline-var-1.C  -std=gnu++17
> > > scan-assembler-times  DW_AT_[^\\n\\r]*linkage_name 7
> > > FAIL: g++.dg/debug/dwarf2/inline-var-1.C  -std=gnu++17
> > > scan-assembler-times  DW_AT_specification 6
> > > FAIL: g++.dg/debug/dwarf2/inline-var-1.C  -std=gnu++17
> > > scan-assembler-times 0x3[^\\n\\r]* DW_AT_inline 6
> > >
> > > C variants of the fesd-* testcases also FAIL.  Those testcases are
> > > huge, a quick look didn't
> > > reveal whether those are expected FAILs or not.
> >
> >
> > I tried reproducing these failures, using 'make bootstrap && make
> > check', but I see many many test failures:
> >
> > === gcc Summary ===
> >
> > # of expected passes144268
> > # of unexpected failures113
> > # of unexpected successes28
> > # of expected failures593
> > # of unresolved testcases2
> > # of unsupported tests2279
> >
> > === g++ Summary ===
> >
> > # of expected passes134673
> > # of unexpected failures137
> > # of expected failures527
> > # of unsupported tests5944
> >
> > /home/tdescham/repo/contrib/gc

Re: [PATCH] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]

2019-05-17 Thread Thomas De Schampheleire
Hi Richard,

El jue., 16 may. 2019 a las 14:41, Richard Biener
() escribió:
>
> On Thu, May 16, 2019 at 11:20 AM Thomas De Schampheleire
>  wrote:
> >
> > From: Thomas De Schampheleire 
> >
> > 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
>
> I have tested this patch and it causes a few FAILs, eventually hinting
> at implementation issues:
>
> === g++ tests ===
>
>
> Running target unix
> FAIL: g++.dg/debug/enum-2.C -gstabs -O2  scan-assembler JTI_MAX
> FAIL: g++.dg/debug/enum-2.C -gstabs -O3  scan-assembler JTI_MAX
> FAIL: g++.dg/debug/enum-2.C -gstabs+ -O2  scan-assembler JTI_MAX
> FAIL: g++.dg/debug/enum-2.C -gstabs+ -O3  scan-assembler JTI_MAX
> FAIL: g++.dg/debug/enum-2.C -gstabs+3 -O2  scan-assembler JTI_MAX
> FAIL: g++.dg/debug/enum-2.C -gstabs+3 -O3  scan-assembler JTI_MAX
> FAIL: g++.dg/debug/enum-2.C -gstabs3 -O2  scan-assembler JTI_MAX
> FAIL: g++.dg/debug/enum-2.C -gstabs3 -O3  scan-assembler JTI_MAX
>
> maybe expected (stabs)
>
> FAIL: g++.dg/debug/dwarf2/fesd-any.C  -std=gnu++14  scan-assembler 
> field_head_or
> dy_defn_fld_head.*DW_AT_name
> FAIL: g++.dg/debug/dwarf2/fesd-any.C  -std=gnu++14  scan-assembler 
> field_head_or
> dy_defn_ptr_head.*DW_AT_name
> FAIL: g++.dg/debug/dwarf2/fesd-any.C  -std=gnu++14  scan-assembler 
> field_head_or
> dy_defn_ref_head.*DW_AT_name
> FAIL: g++.dg/debug/dwarf2/fesd-any.C  -std=gnu++14  scan-assembler 
> field_head_or
> dy_defn_var_head_fld.*DW_AT_name
> ... more ...
> FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++14  scan-assembler 
> gstruct_
> head_ordy_defn_var_head.*DW_AT_name
> FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++14  scan-assembler 
> gstruct_
> head_tmpl_defn_var_head.*DW_AT_name
> FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++17  scan-assembler 
> gstruct_
> head_ordy_defn_var_head.*DW_AT_name
> FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++17  scan-assembler 
> gstruct_
> head_tmpl_defn_var_head.*DW_AT_name
> FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++98  scan-assembler 
> gstruct_
> head_ordy_defn_var_head.*DW_AT_name
> FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C  -std=gnu++98
> scan-assembler gstruct_head_tmpl_defn_var_head.*DW_AT_name
> FAIL: g++.dg/debug/dwarf2/fesd-none.C  -std=gnu++14  scan-assembler
> gstruct_head_ordy_defn_var_head.*DW_AT_name
> FAIL: g++.dg/debug/dwarf2/fesd-none.C  -std=gnu++14  scan-assembler
> gstruct_head_tmpl_defn_var_head.*DW_AT_name
> ... more fesd-* testcases FAIL ...
> FAIL: g++.dg/debug/dwarf2/inline-var-1.C  -std=gnu++17
> scan-assembler-times  DW_AT_[^\\n\\r]*linkage_name 7
> FAIL: g++.dg/debug/dwarf2/inline-var-1.C  -std=gnu++17
> scan-assembler-times  DW_AT_specification 6
> FAIL: g++.dg/debug/dwarf2/inline-var-1.C  -std=gnu++17
> scan-assembler-times 0x3[^\\n\\r]* DW_AT_inline 6
>
> C variants of the fesd-* testcases also FAIL.  Those testcases are
> huge, a quick look didn't
> reveal whether those are expected FAILs or not.


I tried reproducing these failures, using 'make bootstrap && make
check', but I see many many test failures:

=== gcc Summary ===

# of expected passes144268
# of unexpected failures113
# of unexpected successes28
# of expected failures593
# of unresolved testcases2
# of unsupported tests2279

=== g++ Summary ===

# of expected passes134673
# of unexpected failures137
# of expected failures527
# of unsupported tests5944

/home/tdescham/repo/contrib/gcc/host-x86_64-pc-linux-gnu/gcc/xgcc
version 10.0.0 20190516 (experimental) (GCC)


Is it expected that 'master' (gcc 10) has such failures? Should I test
on another branch, if so which?
And is there a way to run only specific tests, e.g. the ones that you
pointed out?

Thanks,
Thomas


[PATCH] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]

2019-05-16 Thread Thomas De Schampheleire
From: Thomas De Schampheleire 

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

gcc/ChangeLog:

2019-05-16  Thomas De Schampheleire  

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/common.opt  | 2 +-
 gcc/doc/invoke.texi | 9 +
 2 files changed, 6 insertions(+), 5 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
-- 
2.21.0