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>
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
* tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
the scalar variant of if-conversion versioning.
......
......@@ -29419,9 +29419,16 @@ prune_unused_types_walk (dw_die_ref die)
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
* 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