Skip to content

Commit 3f354f1

Browse files
committed
[llvm][DebugInfo][ObjC] Make sure we link backing ivars to their DW_TAG_APPLE_property
Depends on: * llvm#165373 * llvm#165401 When an Objective-C property has a backing ivar, we would previously not add a `DW_AT_APPLE_property` to the ivar's `DW_TAG_member`. This is what was intended based on the [Objective-C DebugInfo docs](https://github.com/llvm/llvm-project/blob/main/llvm/docs/SourceLevelDebugging.rst#proposal) but is not what LLVM currently generates. LLDB currently doesn't ever try linking the `ObjCPropertyDecl`s to their `ObjCIvarDecl`s, but if we wanted to, this debug-info patch is a pre-requisite.
1 parent 732fcf3 commit 3f354f1

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

llvm/test/DebugInfo/Generic/objc-property.ll

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,49 +3,55 @@
33
; CHECK: DW_TAG_structure_type
44
; CHECK: DW_AT_name ("Foo")
55
;
6-
; CHECK: DW_TAG_APPLE_property
6+
; CHECK: 0x[[AUTO_SYNTH:[0-9a-f]+]]: DW_TAG_APPLE_property
77
; CHECK: DW_AT_APPLE_property_name ("autoSynthProp")
88
; CHECK: DW_AT_APPLE_property_attribute
99
; CHECK-SAME: DW_APPLE_PROPERTY_assign, DW_APPLE_PROPERTY_readwrite,
1010
; CHECK-SAME: DW_APPLE_PROPERTY_atomic, DW_APPLE_PROPERTY_unsafe_unretained
1111
;
12-
; CHECK: DW_TAG_APPLE_property
12+
; CHECK: 0x[[SYNTH:[0-9a-f]+]]: DW_TAG_APPLE_property
1313
; CHECK: DW_AT_APPLE_property_name ("synthProp")
1414
; CHECK: DW_AT_APPLE_property_attribute
1515
; CHECK-SAME: DW_APPLE_PROPERTY_assign, DW_APPLE_PROPERTY_readwrite,
1616
; CHECK-SAME: DW_APPLE_PROPERTY_atomic, DW_APPLE_PROPERTY_unsafe_unretained
1717
;
18-
; CHECK: DW_TAG_APPLE_property
18+
; CHECK: 0x[[GET:[0-9a-f]+]]: DW_TAG_APPLE_property
1919
; CHECK: DW_AT_APPLE_property_name ("customGetterProp")
2020
; CHECK: DW_AT_APPLE_property_getter ("customGetter")
2121
; CHECK: DW_AT_APPLE_property_attribute
2222
; CHECK-SAME: DW_APPLE_PROPERTY_getter, DW_APPLE_PROPERTY_assign, DW_APPLE_PROPERTY_readwrite,
2323
; CHECK-SAME: DW_APPLE_PROPERTY_atomic, DW_APPLE_PROPERTY_unsafe_unretained
2424
;
25-
; CHECK: DW_TAG_APPLE_property
25+
; CHECK: 0x[[SET:[0-9a-f]+]]: DW_TAG_APPLE_property
2626
; CHECK: DW_AT_APPLE_property_name ("customSetterProp")
2727
; CHECK: DW_AT_APPLE_property_setter ("customSetter:")
2828
; CHECK: DW_AT_APPLE_property_attribute
2929
; CHECK-SAME: DW_APPLE_PROPERTY_assign, DW_APPLE_PROPERTY_readwrite,
3030
; CHECK-SAME: DW_APPLE_PROPERTY_setter, DW_APPLE_PROPERTY_atomic, DW_APPLE_PROPERTY_unsafe_unretained
3131
;
32-
; CHECK: DW_TAG_APPLE_property
32+
; CHECK: 0x[[ACCESSORS:[0-9a-f]+]]: DW_TAG_APPLE_property
3333
; CHECK: DW_AT_APPLE_property_name ("customAccessorsProp")
3434
; CHECK: DW_AT_APPLE_property_getter ("customGetter")
3535
; CHECK: DW_AT_APPLE_property_setter ("customSetter:")
3636
; CHECK: DW_AT_APPLE_property_attribute
3737
; CHECK-SAME: DW_APPLE_PROPERTY_getter, DW_APPLE_PROPERTY_assign, DW_APPLE_PROPERTY_readwrite,
3838
; CHECK-SAME: DW_APPLE_PROPERTY_setter, DW_APPLE_PROPERTY_atomic, DW_APPLE_PROPERTY_unsafe_unretained
3939
;
40-
; FIXME: missing link between DW_TAG_member and the associated DW_TAG_APPLE_property
4140
; CHECK: DW_TAG_member
42-
; CHECK-NOT: DW_AT_APPLE_property
41+
; CHECK: DW_AT_name ("someBackingIvar")
42+
; CHECK: DW_AT_APPLE_property (0x[[SYNTH]])
43+
;
4344
; CHECK: DW_TAG_member
44-
; CHECK-NOT: DW_AT_APPLE_property
45+
; CHECK: DW_AT_name ("_autoSynthProp")
46+
; CHECK: DW_AT_APPLE_property (0x[[AUTO_SYNTH]])
47+
;
4548
; CHECK: DW_TAG_member
46-
; CHECK-NOT: DW_AT_APPLE_property
49+
; CHECK: DW_AT_name ("_customGetterProp")
50+
; CHECK: DW_AT_APPLE_property (0x[[GET]])
51+
;
4752
; CHECK: DW_TAG_member
48-
; CHECK-NOT: DW_AT_APPLE_property
53+
; CHECK: DW_AT_name ("_customSetterProp")
54+
; CHECK: DW_AT_APPLE_property (0x[[SET]])
4955

5056
!llvm.module.flags = !{!7, !8}
5157
!llvm.dbg.cu = !{!13}

0 commit comments

Comments
 (0)