Commit 050e182a by Richard Biener Committed by Richard Biener

re PR debug/90914 (ICE in schedule_generic_params_dies_gen, at dwarf2out.c:27153)

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
parent b614fca2
2019-06-21 Richard Biener <rguenther@suse.de> 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 PR tree-optimization/90913
* tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
the scalar variant of if-conversion versioning. the scalar variant of if-conversion versioning.
......
...@@ -29419,9 +29419,16 @@ prune_unused_types_walk (dw_die_ref die) ...@@ -29419,9 +29419,16 @@ prune_unused_types_walk (dw_die_ref die)
break; break;
/* premark_used_variables marks external variables --- don't mark /* 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)) 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 */ /* FALLTHROUGH */
......
2019-06-21 Richard Biener <rguenther@suse.de> 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 PR tree-optimization/90913
* gfortran.dg/vect/pr90913.f90: New testcase. * gfortran.dg/vect/pr90913.f90: New testcase.
......
// { dg-do compile }
// { dg-additional-options "-feliminate-unused-debug-symbols" }
template <class> class A;
void f ()
{
extern A <double> b;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment