mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-02 07:17:36 +00:00
DebugInfo: Overload get() in DIDescriptor subclasses
Continue to simplify the `DIDescriptor` subclasses, so that they behave more like raw pointers. Remove `getRaw()`, replace it with an overloaded `get()`, and overload the arrow and cast operators. Two testcases started to crash on the arrow operators with this change because of `scope:` references that weren't real scopes. I fixed them. Soon I'll add verifier checks for them too. This also adds explicit dereference operators. Previously, the builtin dereference against `operator MDNode *()` would have worked, but now the builtins are ambiguous. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233030 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -4,9 +4,9 @@
|
||||
|
||||
; CHECK: invoke void @test()
|
||||
; CHECK-NEXT: to label {{.*}} unwind label {{.*}}, !dbg [[INL_LOC:!.*]]
|
||||
; CHECK: [[EMPTY:.*]] = !{}
|
||||
; CHECK: [[INL_LOC]] = !MDLocation(line: 1, scope: [[EMPTY]], inlinedAt: [[INL_AT:.*]])
|
||||
; CHECK: [[INL_AT]] = distinct !MDLocation(line: 2, scope: [[EMPTY]])
|
||||
; CHECK: [[SP:.*]] = !MDSubprogram(
|
||||
; CHECK: [[INL_LOC]] = !MDLocation(line: 1, scope: [[SP]], inlinedAt: [[INL_AT:.*]])
|
||||
; CHECK: [[INL_AT]] = distinct !MDLocation(line: 2, scope: [[SP]])
|
||||
|
||||
declare void @test()
|
||||
declare i32 @__gxx_personality_v0(...)
|
||||
@@ -32,6 +32,6 @@ lpad:
|
||||
|
||||
!llvm.module.flags = !{!1}
|
||||
!1 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!2 = !{}
|
||||
!2 = !MDSubprogram()
|
||||
!3 = !MDLocation(line: 1, scope: !2)
|
||||
!4 = !MDLocation(line: 2, scope: !2)
|
||||
|
||||
Reference in New Issue
Block a user