Fariborz Jahanian | f322f2f | 2014-03-11 00:25:05 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s |
Fariborz Jahanian | bc94c94 | 2014-07-15 17:14:34 +0000 | [diff] [blame] | 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 |
Fariborz Jahanian | f322f2f | 2014-03-11 00:25:05 +0000 | [diff] [blame] | 4 | // rdar://16206443 |
| 5 | |
| 6 | @interface NSObject |
| 7 | - (void) finalize; |
Fariborz Jahanian | 0b3bc24 | 2014-06-10 17:08:04 +0000 | [diff] [blame] | 8 | + (void) class; |
Fariborz Jahanian | f322f2f | 2014-03-11 00:25:05 +0000 | [diff] [blame] | 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 | |
Fariborz Jahanian | 0b3bc24 | 2014-06-10 17:08:04 +0000 | [diff] [blame] | 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 |
Fariborz Jahanian | bc94c94 | 2014-07-15 17:14:34 +0000 | [diff] [blame] | 48 | |
| 49 | // rdar://17633301 |
Fariborz Jahanian | 3705790 | 2014-07-15 17:47:58 +0000 | [diff] [blame] | 50 | __attribute__((visibility("default"))) __attribute__((availability(ios,introduced=9876.5))) |
| 51 | @interface AVScheduledAudioParameters @end |
Fariborz Jahanian | bc94c94 | 2014-07-15 17:14:34 +0000 | [diff] [blame] | 52 | |
Fariborz Jahanian | 3705790 | 2014-07-15 17:47:58 +0000 | [diff] [blame] | 53 | @interface XXXX : AVScheduledAudioParameters |
Fariborz Jahanian | bc94c94 | 2014-07-15 17:14:34 +0000 | [diff] [blame] | 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 |