]> gcc.gnu.org Git - gcc.git/commitdiff
alpha.c (function_arg): Check for void_type_node before using MUST_PASS_IN_STACK.
authorRichard Henderson <rth@cygnus.com>
Wed, 22 Mar 2000 23:09:29 +0000 (15:09 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 22 Mar 2000 23:09:29 +0000 (15:09 -0800)
        * config/alpha/alpha.c (function_arg): Check for void_type_node
        before using MUST_PASS_IN_STACK.

From-SVN: r32692

gcc/ChangeLog
gcc/config/alpha/alpha.c

index 9fe40d10a47fc3d9f3641d1844f69836a1151c0e..4a08c3258c834a01714f95d6cd9bb00ccb0dbf50 100644 (file)
@@ -1,3 +1,8 @@
+2000-03-21  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/alpha.c (function_arg): Check for void_type_node
+       before using MUST_PASS_IN_STACK.
+
 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
 
        * regmove.c (combine_stack_adjustments_for_block): Check that
index 601c1d2f5dfb6f47b283ce52bb0375a14991842b..7c53f52932b83e75c0a96bf5f280de0933afe985 100644 (file)
@@ -3697,10 +3697,15 @@ function_arg(cum, mode, type, named)
 {
   int basereg;
 
-  if (cum >= 6 || MUST_PASS_IN_STACK (mode, type))
+  if (cum >= 6)
     return NULL_RTX;
 
-  if (FUNCTION_ARG_PASS_BY_REFERENCE (cum, mode, type, named))
+  /* VOID is passed as a special flag for "last argument".  */
+  if (type == void_type_node)
+    basereg = 16;
+  else if (MUST_PASS_IN_STACK (mode, type))
+    return NULL_RTX;
+  else if (FUNCTION_ARG_PASS_BY_REFERENCE (cum, mode, type, named))
     basereg = 16;
   else if (TARGET_FPREGS
           && (GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT
This page took 0.103196 seconds and 5 git commands to generate.