aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-03-27 13:57:42 +0100
committerRichard Biener <rguenther@suse.de>2020-03-27 14:00:43 +0100
commit45cfaf9903d3f5aa916d330f2013eb7d820a7137 (patch)
tree6e3c1c751c03776994edd86e8a48a8025855c6ea
parent917e21e8bcddf5047ee0ced063fca412ad81ce7f (diff)
downloadgcc-45cfaf9903d3f5aa916d330f2013eb7d820a7137.zip
gcc-45cfaf9903d3f5aa916d330f2013eb7d820a7137.tar.gz
gcc-45cfaf9903d3f5aa916d330f2013eb7d820a7137.tar.bz2
debug/94273 - avoid creating type DIEs for DINFO_LEVEL_TERSE
This avoids completing types for DINFO_LEVEL_TERSE by using the should_emit_struct_debug machinery. 2020-03-27 Richard Biener <rguenther@suse.de> PR debug/94273 * dwarf2out.c (should_emit_struct_debug): Return false for DINFO_LEVEL_TERSE. * g++.dg/debug/pr94273.C: New testcase.
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/debug/pr94273.C4
4 files changed, 18 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 97cad02..ef8dffb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2020-03-27 Richard Biener <rguenther@suse.de>
+ PR debug/94273
+ * dwarf2out.c (should_emit_struct_debug): Return false for
+ DINFO_LEVEL_TERSE.
+
+2020-03-27 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/94352
* tree-ssa-propagate.c (ssa_prop_init): Move seeding of the
worklist ...
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index b1fa6f5..378a273 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -399,6 +399,9 @@ get_full_len (const wide_int &op)
static bool
should_emit_struct_debug (tree type, enum debug_info_usage usage)
{
+ if (debug_info_level <= DINFO_LEVEL_TERSE)
+ return false;
+
enum debug_struct_file criterion;
tree type_decl;
bool generic = lang_hooks.types.generic_p (type);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d5a1c8e..156eee1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2020-03-27 Richard Biener <rguenther@suse.de>
+
+ PR debug/94273
+ * g++.dg/debug/pr94273.C: New testcase.
+
2020-03-27 Tobias Burnus <tobias@codesourcery.com>
PR fortran/93957
diff --git a/gcc/testsuite/g++.dg/debug/pr94273.C b/gcc/testsuite/g++.dg/debug/pr94273.C
new file mode 100644
index 0000000..4e5c66d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/debug/pr94273.C
@@ -0,0 +1,4 @@
+class a {
+ virtual void c() {}
+} extern b;
+a b;