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  <ebotca...@adacore.com>

        * 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;

Reply via email to