diff options
author | Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> | 2019-05-31 08:22:14 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-05-31 08:22:14 +0000 |
commit | d1137c020aa59c6e86385523ac7e23934d408758 (patch) | |
tree | 6d5ca061eb98fb9388c317d482bd6cd46682553d | |
parent | 6992d6fbf2ffdb4a5c78604fbf33ae95956fffdd (diff) | |
download | gcc-d1137c020aa59c6e86385523ac7e23934d408758.zip gcc-d1137c020aa59c6e86385523ac7e23934d408758.tar.gz gcc-d1137c020aa59c6e86385523ac7e23934d408758.tar.bz2 |
re PR debug/86964 (Too many debug symbols included, especially for extern globals)
2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@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'.
* 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.
From-SVN: r271803
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/common.opt | 2 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 9 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 17 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/enum-2.C | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c | 2 |
16 files changed, 42 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5283fed..b275f01 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@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'. + 2019-05-31 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/90671 diff --git a/gcc/common.opt b/gcc/common.opt index d342c4f..0e72fd0 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 3e4f012..9e2fab5 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} @@ -7828,10 +7828,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/ChangeLog b/gcc/testsuite/ChangeLog index c081448..b2f4478 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,20 @@ +2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@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. + 2019-05-31 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/90671 diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C index a4a0b50..5868ebc 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 4f580eb..fe0016a 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 0af0a83..c5a3396 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 a93b90f..ba40f17 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 95a9a31..86eeb21 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 fc3e6fd..3b1c913 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 d550131..554de37 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 810788a..4062268 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 aefcb87..fffdf04 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 193c05d..6fba512 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 ebbfc36..4209e30 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 ad0a44a..9c100d7 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" } } |