]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - parser.c
Set name for is_varargs too.
[xonotic/gmqcc.git] / parser.c
index f95a2315784c83c52d6aaad00d76c1a278120f74..d694da49eca92665cc5fe543f7e7897f57e41f2a 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -4669,16 +4669,13 @@ static ast_value *parse_parameter_list(parser_t *parser, ast_value *var)
             }
             if (parser->tok == TOKEN_IDENT) {
                 argcounter = util_strdup(parser_tokval(parser));
+                ast_value_set_name(param, argcounter);
                 if (!parser_next(parser) || parser->tok != ')') {
                     parseerror(parser, "`...` must be the last parameter of a variadic function declaration");
                     goto on_error;
                 }
             }
         } else {
-            if (OPTS_OPTION_U32(OPTION_STANDARD) == COMPILER_FTEQCC && param->name[0] == '<') {
-                parseerror(parser, "parameter name omitted");
-                goto on_error;
-            }
             vec_push(params, param);
             if (param->expression.vtype >= TYPE_VARIANT) {
                 char tname[1024]; /* typename is reserved in C++ */
@@ -4697,12 +4694,17 @@ static ast_value *parse_parameter_list(parser_t *parser, ast_value *var)
                 }
                 if (parser->tok == TOKEN_IDENT) {
                     argcounter = util_strdup(parser_tokval(parser));
+                    ast_value_set_name(param, argcounter);
                     if (!parser_next(parser) || parser->tok != ')') {
                         parseerror(parser, "`...` must be the last parameter of a variadic function declaration");
                         goto on_error;
                     }
                 }
             }
+            if (OPTS_OPTION_U32(OPTION_STANDARD) == COMPILER_FTEQCC && param->name[0] == '<') {
+                parseerror(parser, "parameter name omitted");
+                goto on_error;
+            }
         }
     }