[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / CodeGenObjC / debug-info-ivars-indirect.m
blob6b13fbf278528d0b80254f6536b8c4305e9c0f31
1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -debug-info-kind=limited %s -o - | FileCheck %s
3 // Make sure we generate debug symbols for an indirectly referenced
4 // extension to an interface.
6 // This happens to be the order the members are emitted in... I'm assuming it's
7 // not meaningful/important, so if something causes the order to change, feel
8 // 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"
14 @interface I
16     @public int a;
18 @end
20 void foo(I* pi) {
21     int _a = pi->a;
24 // another layer of indirection
25 struct S
27     I* i;
30 @interface I()
32     @public int b;
34 @end
36 void gorf (struct S* s) {
37     int _b = s->i->b;
41 I *source(void);
43 @interface I()
45     @public int c;
47 @end
49 void use(void) {
50     int _c = source()->c;
53 @interface I()
55     @public int d;
57 @end
59 I *x(void);