Commit befa62e7 by Richard Guenther Committed by Richard Biener

re PR middle-end/49945 (gcc.dg/guality/vla-1.c FAILs with -flto)

2011-12-08  Richard Guenther  <rguenther@suse.de>

	PR lto/49945
	* lto-streamer-out.c (tree_is_indexable): Localize variably
	modified types and their FIELD_DECLs.

From-SVN: r182107
parent 3d0c32fe
2011-12-08 Richard Guenther <rguenther@suse.de>
PR lto/49945
* lto-streamer-out.c (tree_is_indexable): Localize variably
modified types and their FIELD_DECLs.
2011-12-08 Eric Botcazou <ebotcazou@adacore.com> 2011-12-08 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/51315 PR tree-optimization/51315
...@@ -139,6 +139,16 @@ tree_is_indexable (tree t) ...@@ -139,6 +139,16 @@ tree_is_indexable (tree t)
&& DECL_CONTEXT (t) && DECL_CONTEXT (t)
&& TREE_CODE (DECL_CONTEXT (t)) == FUNCTION_DECL) && TREE_CODE (DECL_CONTEXT (t)) == FUNCTION_DECL)
return false; return false;
/* Variably modified types need to be streamed alongside function
bodies because they can refer to local entities. Together with
them we have to localize their members as well.
??? In theory that includes non-FIELD_DECLs as well. */
else if (TYPE_P (t)
&& variably_modified_type_p (t, NULL_TREE))
return false;
else if (TREE_CODE (t) == FIELD_DECL
&& variably_modified_type_p (DECL_CONTEXT (t), NULL_TREE))
return false;
else else
return (TYPE_P (t) || DECL_P (t) || TREE_CODE (t) == SSA_NAME); return (TYPE_P (t) || DECL_P (t) || TREE_CODE (t) == SSA_NAME);
} }
......
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