1f7393d2aSJoe Daniels// RUN: %clang_cc1 -verify -Wno-objc-root-class -fsyntax-only %s 2f7393d2aSJoe Daniels 3f7393d2aSJoe Daniels__attribute__((objc_nonlazy_class)) 4f7393d2aSJoe Daniels@interface A 5f7393d2aSJoe Daniels@end 6f7393d2aSJoe Daniels@implementation A 7f7393d2aSJoe Daniels@end 8f7393d2aSJoe Daniels 9f7393d2aSJoe Daniels__attribute__((objc_nonlazy_class)) int X; // expected-error {{'objc_nonlazy_class' attribute only applies to Objective-C interfaces}} 10f7393d2aSJoe Daniels 11f7393d2aSJoe Daniels__attribute__((objc_nonlazy_class())) 12f7393d2aSJoe Daniels@interface B 13f7393d2aSJoe Daniels@end 14f7393d2aSJoe Daniels@implementation B 15f7393d2aSJoe Daniels@end 16f7393d2aSJoe Daniels 17f7393d2aSJoe Daniels__attribute__((objc_nonlazy_class("foo"))) // expected-error{{'objc_nonlazy_class' attribute takes no arguments}} 18f7393d2aSJoe Daniels@interface C 19f7393d2aSJoe Daniels@end 20f7393d2aSJoe Daniels@implementation C 21f7393d2aSJoe Daniels@end 22f7393d2aSJoe Daniels 23f7393d2aSJoe Daniels__attribute__((objc_nonlazy_class)) // expected-error {{'objc_nonlazy_class' attribute only applies to Objective-C interfaces}} 24f7393d2aSJoe Daniels@protocol B 25f7393d2aSJoe Daniels@end 26f7393d2aSJoe Daniels 27f7393d2aSJoe Daniels__attribute__((objc_nonlazy_class)) // expected-error {{'objc_nonlazy_class' attribute only applies to Objective-C interfaces}} 28*22db4824SAaron Ballmanvoid foo(void); 29f7393d2aSJoe Daniels 30f7393d2aSJoe Daniels@interface E 31f7393d2aSJoe Daniels@end 321138d8c8SErik Pilkington 33f7393d2aSJoe Daniels__attribute__((objc_nonlazy_class)) 34c5a05834SErik Pilkington@implementation E 35f7393d2aSJoe Daniels@end 361138d8c8SErik Pilkington 371138d8c8SErik Pilkington__attribute__((objc_nonlazy_class)) 381138d8c8SErik Pilkington@implementation E (MyCat) 391138d8c8SErik Pilkington@end 40