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
This commit is contained in:
parent
3d0c32fe56
commit
befa62e74e
|
@ -1,3 +1,9 @@
|
|||
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>
|
||||
|
||||
PR tree-optimization/51315
|
||||
|
|
|
@ -139,6 +139,16 @@ tree_is_indexable (tree t)
|
|||
&& DECL_CONTEXT (t)
|
||||
&& TREE_CODE (DECL_CONTEXT (t)) == FUNCTION_DECL)
|
||||
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
|
||||
return (TYPE_P (t) || DECL_P (t) || TREE_CODE (t) == SSA_NAME);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue