60 lines · plain
1// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -debug-info-kind=limited %s -o - | FileCheck %s2 3// Make sure we generate debug symbols for an indirectly referenced4// extension to an interface.5 6// This happens to be the order the members are emitted in... I'm assuming it's7// not meaningful/important, so if something causes the order to change, feel8// free to update the test to reflect the new order.9// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "a"10// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "d"11// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "c"12// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "b"13 14@interface I15{16 @public int a;17}18@end19 20void foo(I* pi) {21 int _a = pi->a;22}23 24// another layer of indirection25struct S26{27 I* i;28};29 30@interface I()31{32 @public int b;33}34@end35 36void gorf (struct S* s) {37 int _b = s->i->b;38}39 40 41I *source(void);42 43@interface I()44{45 @public int c;46}47@end48 49void use(void) {50 int _c = source()->c;51}52 53@interface I()54{55 @public int d;56}57@end58 59I *x(void);60