From: Richard Kenner Date: Wed, 15 Dec 1993 23:14:13 +0000 (-0500) Subject: (expand_builtin): Allow __builtin_next_arg to be used in varargs X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1f9becfcbe01274dd5a98f551cd432adae05a8b2;p=gcc.git (expand_builtin): Allow __builtin_next_arg to be used in varargs functions. From-SVN: r6237 --- diff --git a/gcc/expr.c b/gcc/expr.c index a6248be5049..09178a6842d 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -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;