Diag(Tok, diag::ext_thread_before, "extern");
isInvalid = DS.SetStorageClassSpec(DeclSpec::SCS_extern, Loc, PrevSpec);
break;
+ case tok::kw___private_extern__:
+ // FIXME: Implement private extern.
+ isInvalid = DS.SetStorageClassSpec(DeclSpec::SCS_extern, Loc, PrevSpec);
+ break;
case tok::kw_static:
if (DS.isThreadSpecified())
Diag(Tok, diag::ext_thread_before, "static");
// storage-class-specifier
case tok::kw_typedef:
case tok::kw_extern:
+ case tok::kw___private_extern__:
case tok::kw_static:
case tok::kw_auto:
case tok::kw_register:
KEYWORD(__real , EXTC90|EXTC99|EXTCPP|EXTCPP0x)
KEYWORD(__thread , EXTC90|EXTC99|EXTCPP|EXTCPP0x)
+// Apple Extension.
+KEYWORD(__private_extern__ , EXTC90|EXTC99|NOTCPP)
+
// Alternate spelling for various tokens. There are GCC extensions in all
// languages, but should not be disabled in strict conformance mode.
ALIAS("__attribute__", __attribute)