1*b660abc8SErik Pilkington// RUN: %clang_cc1 -verify -fobjc-disable-direct-methods-for-testing %s 2*b660abc8SErik Pilkington 3*b660abc8SErik Pilkington// expected-no-diagnostics 4*b660abc8SErik Pilkington 5*b660abc8SErik Pilkington#define DIRECT __attribute__((objc_direct)) 6*b660abc8SErik Pilkington#define DIRECT_MEMBERS __attribute__((objc_direct_members)) 7*b660abc8SErik Pilkington 8*b660abc8SErik Pilkington__attribute__((objc_root_class)) 9*b660abc8SErik Pilkington@interface X 10*b660abc8SErik Pilkington-(void)direct_method DIRECT; 11*b660abc8SErik Pilkington@end 12*b660abc8SErik Pilkington 13*b660abc8SErik Pilkington@implementation X 14*b660abc8SErik Pilkington-(void)direct_method DIRECT {} 15*b660abc8SErik Pilkington@end 16*b660abc8SErik Pilkington 17*b660abc8SErik Pilkington__attribute__((objc_root_class)) 18*b660abc8SErik PilkingtonDIRECT_MEMBERS 19*b660abc8SErik Pilkington@interface Y 20*b660abc8SErik Pilkington-(void)direct_method2; 21*b660abc8SErik Pilkington@end 22*b660abc8SErik Pilkington 23*b660abc8SErik Pilkington@implementation Y 24*b660abc8SErik Pilkington-(void)direct_method2 {} 25*b660abc8SErik Pilkington@end 26*b660abc8SErik Pilkington 27*b660abc8SErik Pilkington__attribute__((objc_root_class)) 28*b660abc8SErik Pilkington@interface Z 29*b660abc8SErik Pilkington@property (direct) int direct_property; 30*b660abc8SErik Pilkington@end 31*b660abc8SErik Pilkington 32*b660abc8SErik Pilkington@implementation Z @end 33