+/*
+ * Alter an abstract declarator (type name) to declare an identifier instead,
+ * used by the English parser rules to reduce "identifier as type" sequences.
+ */
+static struct cdecl *insert_identifier(struct cdecl *decl, struct parse_item *ident)
+{
+ struct cdecl_declarator *d, **p = &decl->declarators;
+
+ while ((d = *p)->child)
+ p = &d->child;
+
+ *p = &ident->u.declarator;
+ return decl;
+}
+
+static struct cdecl_declarator *nulldecl(void)
+{
+ static const struct cdecl_declarator nulldecl = {0};
+ return (void *)&nulldecl;