Home | History | Annotate | Download | only in Rewriter
      1 // RUN: %clang_cc1 -E %s -o %t.mm
      2 // RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s 
      3 // rdar://11144048
      4 
      5 @class NSString;
      6 
      7 @interface NSObject {
      8     Class isa;
      9 }
     10 @end
     11 
     12 @interface Sub : NSObject {
     13     int subIvar;
     14     NSString *nsstring;
     15 @private
     16     id PrivateIvar;
     17 }
     18 @end
     19 
     20 @implementation Sub 
     21 - (id) MyNSString { return subIvar ? PrivateIvar : nsstring; }
     22 @end
     23 
     24 @interface NSString @end
     25 @implementation NSString @end
     26 
     27 // CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" __declspec(dllimport) unsigned long OBJC_IVAR_$_Sub$subIvar;
     28 // CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" unsigned long OBJC_IVAR_$_Sub$PrivateIvar;
     29 // CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" __declspec(dllimport) unsigned long OBJC_IVAR_$_Sub$nsstring;
     30 // CHECK: #pragma warning(disable:4273)
     31 // CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" __declspec(dllexport) unsigned long int OBJC_IVAR_$_Sub$subIvar
     32 // CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" __declspec(dllexport) unsigned long int OBJC_IVAR_$_Sub$nsstring
     33 // CHECK: __declspec(allocate(".objc_ivar$B")) extern "C" unsigned long int OBJC_IVAR_$_Sub$PrivateIvar
     34 // CHECK: extern "C" __declspec(dllimport) struct _class_t OBJC_METACLASS_$_NSObject;
     35 // CHECK: extern "C" __declspec(dllexport) struct _class_t OBJC_METACLASS_$_Sub
     36 // CHECK: extern "C" __declspec(dllimport) struct _class_t OBJC_CLASS_$_NSObject;
     37 // CHECK: extern "C" __declspec(dllexport) struct _class_t OBJC_CLASS_$_Sub
     38 // CHECK: extern "C" __declspec(dllexport) struct _class_t OBJC_CLASS_$_NSString;
     39 // CHECK: extern "C" __declspec(dllexport) struct _class_t OBJC_METACLASS_$_NSString
     40 // CHECK: extern "C" __declspec(dllexport) struct _class_t OBJC_CLASS_$_NSString
     41