2019-06-21 Richard Biener <rguenther@suse.de>
PR debug/90914
* dwarf2out.c (prune_unused_types_walk): Always consider
function-local extern declarations as used.
* g++.dg/debug/pr90914.C: New testcase.
From-SVN: r272547
+2019-06-21 Richard Biener <rguenther@suse.de>
+
+ PR debug/90914
+ * dwarf2out.c (prune_unused_types_walk): Always consider
+ function-local extern declarations as used.
+
2019-06-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/90913
break;
/* premark_used_variables marks external variables --- don't mark
- them here. */
+ them here. But function-local externals are always considered
+ used. */
if (get_AT (die, DW_AT_external))
- return;
+ {
+ for (c = die->die_parent; c; c = c->die_parent)
+ if (c->die_tag == DW_TAG_subprogram)
+ break;
+ if (!c)
+ return;
+ }
}
/* FALLTHROUGH */
+2019-06-21 Richard Biener <rguenther@suse.de>
+
+ PR debug/90914
+ * g++.dg/debug/pr90914.C: New testcase.
+
2019-06-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/90913
--- /dev/null
+// { dg-do compile }
+// { dg-additional-options "-feliminate-unused-debug-symbols" }
+
+template <class> class A;
+void f ()
+{
+ extern A <double> b;
+}