X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=parser.c;h=3c1001362c37fd0f8ca179a1da1763e1e73ee011;hb=1cd9fac9d1a48d012cf3084c8edc4130e75a1ea5;hp=d25c44fb8ba770d2a54d31dd7f5b8cc299231802;hpb=0f15057a5b66c97d32658bb937abcc7e8ee22932;p=cparser diff --git a/parser.c b/parser.c index d25c44f..3c10013 100644 --- a/parser.c +++ b/parser.c @@ -4032,8 +4032,10 @@ static construct_type_t *parse_inner_declarator(declaration_t *declaration, next_token(); add_anchor_token(')'); inner_types = parse_inner_declarator(declaration, may_be_abstract); - /* All later declarators only modify the return type, not declaration */ - declaration = NULL; + if (inner_types != NULL) { + /* All later declarators only modify the return type, not declaration */ + declaration = NULL; + } rem_anchor_token(')'); expect(')'); break; @@ -6990,7 +6992,7 @@ static expression_t *parse_select_expression(unsigned precedence, if (!declaration->init.complete) { errorf(HERE, "request for member '%Y' of incomplete type '%T'", symbol, type_left); - return create_invalid_expression(); + goto create_error_entry; } entry = find_compound_entry(declaration, symbol);