The LTO bootstrap of the Ada compiler is currently plagued by at least three
different problems. The attached patch is for the easy one: it prevents fake
variables whose type contains a placeholder from being created, which doesn't
work in LTO mode because you cannot instantiate the PLACEHOLDER_EXPRs. IIUC
this is only a slight pessimization.
Bootstrapped/regtested on x86_64-suse-linux, OK for mainline?
2012-01-22 Eric Botcazou <[email protected]>
* tree-ssa-structalias.c (intra_create_variable_infos): Do not create
fake variables for restrict-qualified pointers whose pointed-to type
contains a placeholder.
--
Eric Botcazou
Index: tree-ssa-structalias.c
===================================================================
--- tree-ssa-structalias.c (revision 183348)
+++ tree-ssa-structalias.c (working copy)
@@ -5664,7 +5664,8 @@ intra_create_variable_infos (void)
Treat restrict qualified references the same. */
if (TYPE_RESTRICT (TREE_TYPE (t))
&& ((DECL_BY_REFERENCE (t) && POINTER_TYPE_P (TREE_TYPE (t)))
- || TREE_CODE (TREE_TYPE (t)) == REFERENCE_TYPE))
+ || TREE_CODE (TREE_TYPE (t)) == REFERENCE_TYPE)
+ && !type_contains_placeholder_p (TREE_TYPE (TREE_TYPE (t))))
{
struct constraint_expr lhsc, rhsc;
varinfo_t vi;