}
if (isa<TypedefDecl>(D))
return Diag(Loc, diag::err_unexpected_typedef, II.getName());
+ if (isa<ObjcInterfaceDecl>(D))
+ return Diag(Loc, diag::err_unexpected_interface, II.getName());
assert(0 && "Invalid decl");
abort();
"to match this '%0'")
/// Objective-C parser diagnostics
+DIAG(err_unexpected_interface, ERROR,
+ "unexpected interface name '%0': expected expression")
DIAG(err_objc_no_attributes_on_category, ERROR,
"attributes may not be specified on a category")
DIAG(err_objc_missing_end, ERROR,
--- /dev/null
+// RUN: clang -fsyntax-only -verify %s
+
+@interface Subclass
++ (int)magicNumber;
+@end
+
+int main (void) {
+ return Subclass.magicNumber; // expected-error {{unexpected interface name 'Subclass': expected expression}}
+}
+