reject abstract declarators in function definition (Mauro Persano)

This commit is contained in:
bellard 2003-07-20 12:40:53 +00:00
parent 21d2d99bdc
commit 7b940fcb1b

7
tcc.c
View File

@ -8507,6 +8507,13 @@ static void decl(int l)
error("cannot use local functions");
if (!(type.t & VT_FUNC))
expect("function definition");
/* reject abstract declarators in function definition */
sym = type.ref;
while ((sym = sym->next) != NULL)
if (!(sym->v & ~SYM_FIELD))
expect("identifier");
/* XXX: cannot do better now: convert extern line to static inline */
if ((type.t & (VT_EXTERN | VT_INLINE)) == (VT_EXTERN | VT_INLINE))
type.t = (type.t & ~VT_EXTERN) | VT_STATIC;