Home | History | Annotate | Download | only in CodeGenObjC
      1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s
      2 // RUN: %clang_cc1 -triple armv7-apple-darwin10 -emit-llvm  -o - %s | FileCheck %s
      3 // RUN: %clang_cc1 -triple arm64-apple-ios -emit-llvm -o - %s | FileCheck %s
      4 // rdar://16206443
      5 
      6 @interface NSObject 
      7 - (void) finalize;
      8 + (void) class;
      9 @end
     10 
     11 __attribute__((availability(macosx,introduced=9876.5)))
     12 @interface MyClass : NSObject
     13 + (void)someClassMethod;
     14 - (void)someInstanceMethod;
     15 @end
     16 
     17 @implementation MyClass
     18 + (void)someClassMethod {
     19 }
     20 
     21 - (void)someInstanceMethod {
     22     [MyClass someClassMethod];
     23     [super finalize];
     24 }
     25 @end
     26 
     27 void kit()
     28 {
     29     MyClass *wrapper = [MyClass alloc];
     30 }
     31 
     32 // CHECK: @"OBJC_CLASS_$_MyClass" = global %struct._class_t
     33 // CHECK: @"OBJC_METACLASS_$_NSObject" = external global %struct._class_t
     34 // CHECK: @"OBJC_METACLASS_$_MyClass" = global %struct._class_t
     35 // CHECK: @"OBJC_CLASS_$_NSObject" = external global %struct._class_t
     36 
     37 // rdar://16529125
     38 __attribute__((weak_import))
     39 @interface NSURLQueryItem : NSObject
     40 @end
     41 
     42 @implementation NSURLQueryItem (hax)
     43 +(void)classmethod { [super class]; }
     44 @end
     45 
     46 // CHECK: @"OBJC_METACLASS_$_NSURLQueryItem" = extern_weak global
     47 // CHECK: @"OBJC_CLASS_$_NSURLQueryItem" = extern_weak global
     48 
     49 // rdar://17633301
     50 __attribute__((visibility("default"))) __attribute__((availability(ios,introduced=9876.5)))
     51 @interface AVScheduledAudioParameters @end
     52 
     53 @interface XXXX : AVScheduledAudioParameters
     54 @end
     55 
     56 @implementation AVScheduledAudioParameters @end
     57 @implementation XXXX @end
     58 
     59 // CHECK: @"OBJC_CLASS_$_AVScheduledAudioParameters" = global %struct._class_t
     60 // CHECK: @"OBJC_METACLASS_$_AVScheduledAudioParameters" = global %struct._class_t 
     61