OSDN Git Service

(expand_builtin): Allow __builtin_next_arg to be used in varargs
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Dec 1993 23:14:13 +0000 (23:14 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Dec 1993 23:14:13 +0000 (23:14 +0000)
functions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6237 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/expr.c

index a6248be..09178a6 100644 (file)
@@ -6936,10 +6936,17 @@ expand_builtin (exp, target, subtarget, mode, ignore)
       /* Return the address of the first anonymous stack arg.  */
     case BUILT_IN_NEXT_ARG:
       {
+       tree parm;
        tree fntype = TREE_TYPE (current_function_decl);
+       tree fnargs = DECL_ARGUMENTS (current_function_decl);
        if (!(TYPE_ARG_TYPES (fntype) != 0
              && (TREE_VALUE (tree_last (TYPE_ARG_TYPES (fntype)))
-                 != void_type_node)))
+                 != void_type_node))
+           && !(fnargs
+                && (parm = tree_last (fnargs)) != 0
+                && DECL_NAME (parm)
+                && (! strcmp (IDENTIFIER_POINTER (DECL_NAME (parm)),
+                              "__builtin_va_alist"))))
          {
            error ("`va_start' used in function with fixed args");
            return const0_rtx;