add missing semantic check: varargs arguments must have object type (= not void)
authorMatthias Braun <matze@braunis.de>
Fri, 10 Sep 2010 09:29:48 +0000 (09:29 +0000)
committerMatthias Braun <matze@braunis.de>
Fri, 10 Sep 2010 09:29:48 +0000 (09:29 +0000)
[r27986]

parser.c

index 5189da8..0174b5b 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -7520,6 +7520,10 @@ static expression_t *parse_call_expression(expression_t *expression)
        /* do default promotion for other arguments */
        for (; argument != NULL; argument = argument->next) {
                type_t *type = argument->expression->base.type;
+               if (!is_type_object(skip_typeref(type))) {
+                       errorf(&argument->expression->base.source_position,
+                              "call argument '%E' must not be void", argument->expression);
+               }
 
                type = get_default_promoted_type(type);