diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2014-03-03 21:53:57 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2014-03-03 21:53:57 +0000 |
commit | 1d5c1fad68e198e802c1fd7642876716ab1b2841 (patch) | |
tree | e8cd7c5c078cc63602585fdf4ff2f843cac09b15 /clang/test/CodeGenObjC/forward-protocol-metadata-symbols.m | |
parent | f72eeaa4380cd990a1f0fb3135f6bfa409189861 (diff) | |
download | bcm5719-llvm-1d5c1fad68e198e802c1fd7642876716ab1b2841.tar.gz bcm5719-llvm-1d5c1fad68e198e802c1fd7642876716ab1b2841.zip |
Objective-C. Fixes a regression when figuring out linkage
for metadata symbols for forward referenced protocols which
are never defined. // rdar://16203115
llvm-svn: 202761
Diffstat (limited to 'clang/test/CodeGenObjC/forward-protocol-metadata-symbols.m')
-rw-r--r-- | clang/test/CodeGenObjC/forward-protocol-metadata-symbols.m | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/clang/test/CodeGenObjC/forward-protocol-metadata-symbols.m b/clang/test/CodeGenObjC/forward-protocol-metadata-symbols.m new file mode 100644 index 00000000000..c28adb3f8aa --- /dev/null +++ b/clang/test/CodeGenObjC/forward-protocol-metadata-symbols.m @@ -0,0 +1,24 @@ +// RUN: %clang_cc1 -emit-llvm -x objective-c %s -o - | FileCheck %s +// rdar://16203115 + +@interface NSObject @end + +@protocol P0; + +@interface A : NSObject <P0> ++(Class) getClass; +@end + +@implementation A ++(Class) getClass { return self; } +@end + +int main() { + Protocol *P0 = @protocol(P0); + return 0; +} + +// CHECK: @"\01l_OBJC_PROTOCOL_$_P0" = weak hidden global +// CHECK: @"\01l_OBJC_CLASS_PROTOCOLS_$_A" = private global +// CHECK: @"\01l_OBJC_LABEL_PROTOCOL_$_P0" = weak hidden global +// CHECK: @"\01l_OBJC_PROTOCOL_REFERENCE_$_P0" = weak hidden global |