- free(d->child);
- free(param);
- free(d);
- *p = decl;
-
- /*
- * We may have replaced d with another fake function which
- * also needs to be eliminated.
- */
- if (reduce_parentheses(p, decl) < 0)
- return -1;
-
- /*
- * If the remaining declarator is a function, make sure it's
- * valid by checking its reducibility.
- */
- decl = *p;
- if (decl->type == CDECL_DECL_FUNCTION
- && decl->child->type == CDECL_DECL_NULL
- && !function_is_reducible(decl)) {
- cdecl__errmsg(CDECL__EMANYPAREN);
- return -1;
- }