1*67e74705SXin Li// RUN: %clang_cc1 -E %s -o %t.mm 2*67e74705SXin Li// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s 3*67e74705SXin Li// rdar:// 11124354 4*67e74705SXin Li 5*67e74705SXin Li@interface Root @end 6*67e74705SXin Li 7*67e74705SXin Li@interface Super : Root 8*67e74705SXin Li@end 9*67e74705SXin Li 10*67e74705SXin Li@interface Sub : Super 11*67e74705SXin Li@end 12*67e74705SXin Li 13*67e74705SXin Li@implementation Sub @end 14*67e74705SXin Li 15*67e74705SXin Li@implementation Root @end 16*67e74705SXin Li 17*67e74705SXin Li@interface Root(Cat) @end 18*67e74705SXin Li 19*67e74705SXin Li@interface Sub(Cat) @end 20*67e74705SXin Li 21*67e74705SXin Li@implementation Root(Cat) @end 22*67e74705SXin Li 23*67e74705SXin Li@implementation Sub(Cat) @end 24*67e74705SXin Li 25*67e74705SXin Li 26*67e74705SXin Li// CHECK: #pragma section(".objc_inithooks$B", long, read, write) 27*67e74705SXin Li// CHECK: __declspec(allocate(".objc_inithooks$B")) static void *OBJC_CLASS_SETUP[] = { 28*67e74705SXin Li// CHECK: (void *)&OBJC_CLASS_SETUP_$_Sub, 29*67e74705SXin Li// CHECK: (void *)&OBJC_CLASS_SETUP_$_Root, 30*67e74705SXin Li// CHECK: }; 31*67e74705SXin Li 32*67e74705SXin Li// CHECK: #pragma section(".objc_inithooks$B", long, read, write) 33*67e74705SXin Li// CHECK: __declspec(allocate(".objc_inithooks$B")) static void *OBJC_CATEGORY_SETUP[] = { 34*67e74705SXin Li// CHECK: (void *)&OBJC_CATEGORY_SETUP_$_Root_$_Cat, 35*67e74705SXin Li// CHECK: (void *)&OBJC_CATEGORY_SETUP_$_Sub_$_Cat, 36*67e74705SXin Li// CHECK: }; 37