1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -verify -Wattributes -Wobjc-root-class %s 2*67e74705SXin Li@interface RootClass {} // expected-warning {{class 'RootClass' defined without specifying a base class}} \ 3*67e74705SXin Li // expected-note {{add a super class to fix this problem}} 4*67e74705SXin Li@end 5*67e74705SXin Li@implementation RootClass 6*67e74705SXin Li@end 7*67e74705SXin Li 8*67e74705SXin Li__attribute__((objc_root_class)) 9*67e74705SXin Li@interface NonRootClass : RootClass // expected-error {{objc_root_class attribute may only be specified on a root class declaration}} 10*67e74705SXin Li@end 11*67e74705SXin Li@implementation NonRootClass 12*67e74705SXin Li@end 13*67e74705SXin Li 14*67e74705SXin Li__attribute__((objc_root_class)) static void nonClassDeclaration() // expected-error {{'objc_root_class' attribute only applies to Objective-C interfaces}} 15*67e74705SXin Li{ 16*67e74705SXin Li} 17*67e74705SXin Li 18*67e74705SXin Li__attribute__((objc_root_class(1))) // expected-error {{'objc_root_class' attribute takes no arguments}} 19*67e74705SXin Li@interface I1 20*67e74705SXin Li@end 21