From: Matthias Braun Date: Sat, 29 Dec 2007 14:07:49 +0000 (+0000) Subject: declaration may be NULL for abstract declarators X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=71d9d3141c042f9f21b983482c4bd16fbb69c21d;p=cparser declaration may be NULL for abstract declarators [r18830] --- diff --git a/parser.c b/parser.c index 02288e9..e16f4d9 100644 --- a/parser.c +++ b/parser.c @@ -2039,7 +2039,12 @@ static construct_type_t *parse_function_declarator(declaration_t *declaration) { eat('('); - type_t *type = allocate_type_zero(TYPE_FUNCTION, declaration->source_position); + type_t *type; + if(declaration != NULL) { + type = allocate_type_zero(TYPE_FUNCTION, declaration->source_position); + } else { + type = allocate_type_zero(TYPE_FUNCTION, token.source_position); + } declaration_t *parameters = parse_parameters(&type->function); if(declaration != NULL) { diff --git a/parsetest/cp_error017.c b/parsetest/cp_error017.c new file mode 100644 index 0000000..235f6fd --- /dev/null +++ b/parsetest/cp_error017.c @@ -0,0 +1,7 @@ +int main(void) { + void (*var)(void); + + var = (void (*)(void)) 0; + + return (int) var; +}