diff options
Diffstat (limited to 'test/CodeGenObjC/debug-info-ivars-indirect.m')
-rw-r--r-- | test/CodeGenObjC/debug-info-ivars-indirect.m | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/test/CodeGenObjC/debug-info-ivars-indirect.m b/test/CodeGenObjC/debug-info-ivars-indirect.m index 1548ddd0bb6e..f9593d24dea0 100644 --- a/test/CodeGenObjC/debug-info-ivars-indirect.m +++ b/test/CodeGenObjC/debug-info-ivars-indirect.m @@ -3,6 +3,14 @@ // Make sure we generate debug symbols for an indirectly referenced // extension to an interface. +// This happens to be the order the members are emitted in... I'm assuming it's +// not meaningful/important, so if something causes the order to change, feel +// free to update the test to reflect the new order. +// CHECK: ; [ DW_TAG_member ] [a] +// CHECK: ; [ DW_TAG_member ] [d] +// CHECK: ; [ DW_TAG_member ] [c] +// CHECK: ; [ DW_TAG_member ] [b] + @interface I { @public int a; @@ -29,4 +37,23 @@ void gorf (struct S* s) { int _b = s->i->b; } -// CHECK: {{.*}} [ DW_TAG_member ] [b] [line 24, size 32, align 32, offset 0] [from int] + +I *source(); + +@interface I() +{ + @public int c; +} +@end + +void use() { + int _c = source()->c; +} + +@interface I() +{ + @public int d; +} +@end + +I *x(); |