Home | History | Annotate | Download | only in SemaObjC
      1 // RUN: %clang -target x86_64-apple-darwin -arch arm64 -mios-version-min=7 -fsyntax-only -Wdeprecated-objc-isa-usage %s -Xclang -verify
      2 // RUN: %clang -target x86_64-apple-darwin -arch arm64 -mios-version-min=7 -fsyntax-only %s -Xclang -verify
      3 // RUN: %clang -target x86_64-apple-darwin -mios-simulator-version-min=7 -fsyntax-only -Wdeprecated-objc-isa-usage %s -Xclang -verify
      4 // RUN: %clang -target x86_64-apple-darwin -arch armv7k -mwatchos-version-min=2 -fsyntax-only -Wdeprecated-objc-isa-usage %s -Xclang -verify
      5 // rdar://10709102
      6 // RUN: %clang -target x86_64-apple-darwin -arch x86_64 -fsyntax-only -Wdeprecated-objc-isa-usage %s -Xclang -verify
      7 
      8 typedef struct objc_object {
      9   struct objc_class *isa;
     10 } *id;
     11 
     12 @interface NSObject {
     13   struct objc_class *isa;
     14 }
     15 @end
     16 @interface Whatever : NSObject
     17 +self;
     18 @end
     19 
     20 static void func() {
     21 
     22   id x;
     23 
     24   [(*x).isa self]; // expected-error {{direct access to Objective-C's isa is deprecated in favor of object_getClass()}}
     25   [x->isa self];   // expected-error {{direct access to Objective-C's isa is deprecated in favor of object_getClass()}}
     26 }
     27