diff options
| -rw-r--r-- | decl.c | 20 | 
1 files changed, 11 insertions, 9 deletions
| @@ -480,16 +480,18 @@ declaratortypes(struct scope *s, struct list *result, char **name, bool allowabs  	switch (tok.kind) {  	case TLPAREN:  		next(); -		switch (tok.kind) { -		case TMUL: -		case TLPAREN: -			break; -		case TIDENT: -			if (!allowabstract || !istypename(s, tok.lit)) +		if (allowabstract) { +			switch (tok.kind) { +			case TMUL: +			case TLPAREN:  				break; -			/* fallthrough */ -		default: -			goto func; +			case TIDENT: +				if (!istypename(s, tok.lit)) +					break; +				/* fallthrough */ +			default: +				goto func; +			}  		}  		declaratortypes(s, result, name, allowabstract);  		expect(TRPAREN, "after parenthesized declarator"); | 
