tree-pretty-print.c (percent_K_format): Implement special case for LTO and its stripped down BLOCK tree.

2014-03-26  Richard Biener  <rguenther@suse.de>

	* tree-pretty-print.c (percent_K_format): Implement special
	case for LTO and its stripped down BLOCK tree.

From-SVN: r208843
This commit is contained in:
Richard Biener 2014-03-26 09:47:36 +00:00 committed by Richard Biener
parent 9e1c8fc1a5
commit 3a2700f61b
2 changed files with 24 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2014-03-26 Richard Biener <rguenther@suse.de>
* tree-pretty-print.c (percent_K_format): Implement special
case for LTO and its stripped down BLOCK tree.
2014-03-26 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/60636

View File

@ -3365,6 +3365,25 @@ percent_K_format (text_info *text)
gcc_assert (pp_ti_abstract_origin (text) != NULL);
block = TREE_BLOCK (t);
*pp_ti_abstract_origin (text) = NULL;
if (in_lto_p)
{
/* ??? LTO drops all BLOCK_ABSTRACT_ORIGINs apart from those
representing the outermost block of an inlined function.
So walk the BLOCK tree until we hit such a scope. */
while (block
&& TREE_CODE (block) == BLOCK)
{
if (inlined_function_outer_scope_p (block))
{
*pp_ti_abstract_origin (text) = block;
break;
}
block = BLOCK_SUPERCONTEXT (block);
}
return;
}
while (block
&& TREE_CODE (block) == BLOCK
&& BLOCK_ABSTRACT_ORIGIN (block))