brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 6b13fbf Raw
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