xref: /llvm-project/clang/test/CodeGenObjC/protocol-comdat.m (revision e6d423fe03e63212d03dc180cb9e07d65bb5a614)
1*e6d423feSFangrui Song// RUN: %clang_cc1 -triple thumbv7--windows-itanium -fobjc-runtime=ios -emit-llvm -o - %s -Wno-objc-root-class | FileCheck %s
29ccc7ad6SSaleem Abdulrasool
39ccc7ad6SSaleem Abdulrasool@protocol P
49ccc7ad6SSaleem Abdulrasool- (void) method;
59ccc7ad6SSaleem Abdulrasool@end
69ccc7ad6SSaleem Abdulrasool
7b111da14SAlex Lorenz@protocol Q @end
8b111da14SAlex Lorenz@protocol R @end
99f83f3b2SSaleem Abdulrasool
109ccc7ad6SSaleem Abdulrasool@interface I<P>
119ccc7ad6SSaleem Abdulrasool@end
129ccc7ad6SSaleem Abdulrasool
139ccc7ad6SSaleem Abdulrasool@implementation I
149ccc7ad6SSaleem Abdulrasool- (void) method { }
159ccc7ad6SSaleem Abdulrasool@end
169ccc7ad6SSaleem Abdulrasool
179f83f3b2SSaleem Abdulrasool_Bool f(void) {
189f83f3b2SSaleem Abdulrasool  return @protocol(Q) == @protocol(R);
199f83f3b2SSaleem Abdulrasool}
209ccc7ad6SSaleem Abdulrasool
216bc3a770SAkira Hatanaka// CHECK: $"_OBJC_PROTOCOL_$_P" = comdat any
226bc3a770SAkira Hatanaka// CHECK: $"_OBJC_LABEL_PROTOCOL_$_P" = comdat any
23187770dcSAkira Hatanaka// CHECK: $"_OBJC_PROTOCOL_REFERENCE_$_Q" = comdat any
24187770dcSAkira Hatanaka// CHECK: $"_OBJC_PROTOCOL_REFERENCE_$_R" = comdat any
259ccc7ad6SSaleem Abdulrasool
266bc3a770SAkira Hatanaka// CHECK: @"_OBJC_PROTOCOL_$_P" = {{.*}}, comdat
276bc3a770SAkira Hatanaka// CHECK: @"_OBJC_LABEL_PROTOCOL_$_P" = {{.*}}, comdat
289ccc7ad6SSaleem Abdulrasool
29