| Fariborz Jahanian | 1d5c1fa | 2014-03-03 21:53:57 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -emit-llvm -x objective-c %s -o - | FileCheck %s | 
|  | 2 | // rdar://16203115 | 
|  | 3 |  | 
|  | 4 | @interface NSObject @end | 
|  | 5 |  | 
|  | 6 | @protocol P0; | 
|  | 7 |  | 
|  | 8 | @interface A : NSObject <P0> | 
|  | 9 | +(Class) getClass; | 
|  | 10 | @end | 
|  | 11 |  | 
|  | 12 | @implementation A | 
|  | 13 | +(Class) getClass { return self; } | 
|  | 14 | @end | 
|  | 15 |  | 
|  | 16 | int main() { | 
|  | 17 | Protocol *P0 = @protocol(P0); | 
|  | 18 | return 0; | 
|  | 19 | } | 
|  | 20 |  | 
| Rafael Espindola | 70efc5b | 2014-03-06 18:54:12 +0000 | [diff] [blame] | 21 | // CHECK: @"\01l_OBJC_PROTOCOL_$_P0" = weak hidden global | 
| Fariborz Jahanian | 1d5c1fa | 2014-03-03 21:53:57 +0000 | [diff] [blame] | 22 | // CHECK: @"\01l_OBJC_CLASS_PROTOCOLS_$_A" = private global | 
| Rafael Espindola | 70efc5b | 2014-03-06 18:54:12 +0000 | [diff] [blame] | 23 | // CHECK: @"\01l_OBJC_LABEL_PROTOCOL_$_P0" = weak hidden global | 
|  | 24 | // CHECK: @"\01l_OBJC_PROTOCOL_REFERENCE_$_P0" = weak hidden global | 
| Rafael Espindola | dec97f8 | 2014-03-06 22:02:16 +0000 | [diff] [blame] | 25 |  | 
| Saleem Abdulrasool | be2b5cb | 2018-01-23 19:35:51 +0000 | [diff] [blame] | 26 | // CHECK: llvm.used = appending global [3 x i8*] | 
|  | 27 | // CHECK-SAME: "\01l_OBJC_PROTOCOL_$_P0" | 
|  | 28 | // CHECK-SAME: "\01l_OBJC_LABEL_PROTOCOL_$_P0" | 
|  | 29 | // CHECK-SAME: "\01l_OBJC_PROTOCOL_REFERENCE_$_P0" | 
|  | 30 |  | 
|  | 31 | // CHECK: llvm.compiler.used = appending global [7 x i8*] | 
| Saleem Abdulrasool | 50cb5ef | 2018-01-23 17:57:04 +0000 | [diff] [blame] | 32 | // CHECK-SAME: OBJC_CLASS_NAME_ | 
|  | 33 | // CHECK-SAME: OBJC_METH_VAR_NAME_ | 
|  | 34 | // CHECK-SAME: OBJC_METH_VAR_TYPE_ | 
|  | 35 | // CHECK-SAME: "\01l_OBJC_$_CLASS_METHODS_A" | 
|  | 36 | // CHECK-SAME: "\01l_OBJC_CLASS_PROTOCOLS_$_A" | 
|  | 37 | // CHECK-SAME: OBJC_CLASS_NAME_.1 | 
| Saleem Abdulrasool | 50cb5ef | 2018-01-23 17:57:04 +0000 | [diff] [blame] | 38 | // CHECK-SAME: "OBJC_LABEL_CLASS_$" | 
|  | 39 | // CHECK-SAME: section "llvm.metadata" |