40 lines · plain
1// RUN: %clang_cc1 -E %s -o %t.mm2// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s 3 4@class NSString;5 6@interface NSObject {7 Class isa;8}9@end10 11@interface Sub : NSObject {12 int subIvar;13 NSString *nsstring;14@private15 id PrivateIvar;16}17@end18 19@implementation Sub 20- (id) MyNSString { return subIvar ? PrivateIvar : nsstring; }21@end22 23@interface NSString @end24@implementation NSString @end25 26// CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" __declspec(dllimport) unsigned long OBJC_IVAR_$_Sub$subIvar;27// CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" unsigned long OBJC_IVAR_$_Sub$PrivateIvar;28// CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" __declspec(dllimport) unsigned long OBJC_IVAR_$_Sub$nsstring;29// CHECK: #pragma warning(disable:4273)30// CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" __declspec(dllexport) unsigned long int OBJC_IVAR_$_Sub$subIvar31// CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" __declspec(dllexport) unsigned long int OBJC_IVAR_$_Sub$nsstring32// CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" unsigned long int OBJC_IVAR_$_Sub$PrivateIvar33// CHECK: extern "C" __declspec(dllimport) struct _class_t OBJC_METACLASS_$_NSObject;34// CHECK: extern "C" __declspec(dllexport) struct _class_t OBJC_METACLASS_$_Sub35// CHECK: extern "C" __declspec(dllimport) struct _class_t OBJC_CLASS_$_NSObject;36// CHECK: extern "C" __declspec(dllexport) struct _class_t OBJC_CLASS_$_Sub37// CHECK: extern "C" __declspec(dllexport) struct _class_t OBJC_CLASS_$_NSString;38// CHECK: extern "C" __declspec(dllexport) struct _class_t OBJC_METACLASS_$_NSString39// CHECK: extern "C" __declspec(dllexport) struct _class_t OBJC_CLASS_$_NSString40