Files
swift-mirror/test/DebugInfo/debug_variable.sil
Min-Yih Hsu 2d35d31290 [IRGen][DebugInfo] Use attached SILLocation for generating var debug loc
Currently IRGen requires the AST node of a variable declaration to
generate debug location. However, this will fail if the input is SIL due
to the lack of AST reconstruction. Plus, it's unnecessary since we can
just use the `SILLocation` attached on `debug_value` (and its friends) SIL
instruction to generate the correct LLVM debug metadata.

Resolves SR-14868
2021-07-06 09:40:53 -07:00

26 lines
885 B
Plaintext

// RUN: %target-swiftc_driver -g -emit-ir %s | %FileCheck %s
sil_stage canonical
import Builtin
import Swift
sil_scope 2 { loc "simple.swift":1:2 parent @test_debug_value : $@convention(thin) (Int) -> () }
// SR-14868: Incorrect source location on `llvm.dbg.declare` when the input
// is SIL file.
// CHECK: @test_debug_value
// CHECK-SAME: !dbg ![[FUNC_DI:[0-9]+]]
sil hidden @test_debug_value : $@convention(thin) (Int) -> () {
bb0(%0 : $Int):
// CHECK: @llvm.dbg.declare(metadata i{{[0-9]+}}*
// CHECK-SAME: metadata ![[VAR_DI:[0-9]+]]
// CHECK-SAME: ), !dbg ![[LOC_DI:[0-9]+]]
debug_value %0 : $Int, let, name "x", argno 1, loc "simple.swift":3:4, scope 2
%1 = tuple ()
return %1 : $()
}
// CHECK: ![[VAR_DI]] = !DILocalVariable(name: "x", arg: 1
// CHECK: ![[LOC_DI]] = !DILocation(line: 3, column: 4, scope: ![[FUNC_DI]]