+ /* "long" special case */
+ if ((map & bit) == 1ul << MAP_LONG_BIT)
+ bit = 1ul << MAP_LLONG_BIT;
+
+ if (map & bit) {
+ if (bit == 1ul << MAP_LLONG_BIT)
+ cdecl__err(CDECL_EBADTYPE, _("too many long specifiers"));
+ else
+ cdecl__err(CDECL_EBADTYPE, _("duplicate type specifier"));
+ return false;
+ }
+ map |= bit;
+ }
+
+ if (typemap_is_valid(map))
+ return true;
+
+ if (map == 0)
+ cdecl__err(CDECL_EBADTYPE, _("no type specified"));
+ else
+ cdecl__err(CDECL_EBADTYPE, _("invalid type specified"));
+
+ return false;