aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas De Schampheleire <thomas.de_schampheleire@nokia.com>2019-05-31 08:22:14 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-05-31 08:22:14 +0000
commitd1137c020aa59c6e86385523ac7e23934d408758 (patch)
tree6d5ca061eb98fb9388c317d482bd6cd46682553d
parent6992d6fbf2ffdb4a5c78604fbf33ae95956fffdd (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/common.opt2
-rw-r--r--gcc/doc/invoke.texi9
-rw-r--r--gcc/testsuite/ChangeLog17
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/enum-2.C1
-rw-r--r--gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c2
-rw-r--r--gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c2
-rw-r--r--gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c2
-rw-r--r--gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c2
-rw-r--r--gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c2
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" } }