From 1f9becfcbe01274dd5a98f551cd432adae05a8b2 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 15 Dec 1993 18:14:13 -0500 Subject: [PATCH] (expand_builtin): Allow __builtin_next_arg to be used in varargs functions. From-SVN: r6237 --- gcc/expr.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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; -- 2.30.2