protocol-comdat.m 633 B

12345678910111213141516171819202122232425262728
  1. // RUN: %clang_cc1 -triple thumbv7--windows-itanium -fobjc-runtime=ios -emit-llvm -o - %s -Wno-objc-root-class | FileCheck %s
  2. @protocol P
  3. - (void) method;
  4. @end
  5. @protocol Q @end
  6. @protocol R @end
  7. @interface I<P>
  8. @end
  9. @implementation I
  10. - (void) method { }
  11. @end
  12. _Bool f(void) {
  13. return @protocol(Q) == @protocol(R);
  14. }
  15. // CHECK: $"_OBJC_PROTOCOL_$_P" = comdat any
  16. // CHECK: $"_OBJC_LABEL_PROTOCOL_$_P" = comdat any
  17. // CHECK: $"_OBJC_PROTOCOL_REFERENCE_$_Q" = comdat any
  18. // CHECK: $"_OBJC_PROTOCOL_REFERENCE_$_R" = comdat any
  19. // CHECK: @"_OBJC_PROTOCOL_$_P" = {{.*}}, comdat
  20. // CHECK: @"_OBJC_LABEL_PROTOCOL_$_P" = {{.*}}, comdat