------- Comment #21 from ubizjak at gmail dot com  2009-09-10 18:37 -------
Either -fno-tree-fre or -fno-tree-dce "fixes" this test in the sense that
somehow disables stdarg optimization:

f4: va_list escapes 1, needs to save all GPR units and all FPR units.

This all happens on top of:

Index: gcc/config/alpha/alpha.c
===================================================================
--- gcc/config/alpha/alpha.c    (revision 151587)
+++ gcc/config/alpha/alpha.c    (working copy)
@@ -6339,7 +6339,7 @@ alpha_gimplify_va_arg_1 (tree type, tree
     }

   addend = offset;
-  ptr_type = build_pointer_type (type);
+  ptr_type = build_pointer_type_for_mode (type, ptr_mode, true);

   if (TREE_CODE (type) == COMPLEX_TYPE)
     {
@@ -6420,7 +6420,7 @@ alpha_gimplify_va_arg (tree valist, tree

   indirect = pass_by_reference (NULL, TYPE_MODE (type), type, false);
   if (indirect)
-    type = build_pointer_type (type);
+    type = build_pointer_type_for_mode (type, ptr_mode, true);

   /* Find the value.  Note that this will be a stable indirection, or
      a composite of stable indirections in the case of complex.  */


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41089

Reply via email to