mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Add function debug info descriptions (#4233)
Still doesn't have line tables, so of limited value (at least now this'll be enough that LLVM really generates debug info into the resulting object file (whereas with only the compilation unit metadata, LLVM will consider it empty and avoid emitting any of it)) - but another step along the path. This also doesn't attach the right source location to the functions - I'll do that in a follow-up change because I think it'll require the majority of the refactoring between driver and check to extract the essential functionality sem_ir_diagnostic_converter, I think, to allow retrieving source locations during lowering. --------- Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
This commit is contained in:
co-authored by
Jon Ross-Perkins
parent
435ee44e4c
commit
ea8ad22a17
+6
-2
@@ -21,14 +21,14 @@ fn G() -> i32 {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: @array.loc16_11.1 = internal constant [3 x i32] [i32 1, i32 2, i32 3]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: define i32 @F(ptr %arr, i32 %i) {
|
||||
// CHECK:STDOUT: define i32 @F(ptr %arr, i32 %i) !dbg !4 {
|
||||
// CHECK:STDOUT: entry:
|
||||
// CHECK:STDOUT: %.loc12_15.2.array.index = getelementptr inbounds [3 x i32], ptr %arr, i32 0, i32 %i
|
||||
// CHECK:STDOUT: %.loc12_15.3 = load i32, ptr %.loc12_15.2.array.index, align 4
|
||||
// CHECK:STDOUT: ret i32 %.loc12_15.3
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: define i32 @G() {
|
||||
// CHECK:STDOUT: define i32 @G() !dbg !7 {
|
||||
// CHECK:STDOUT: entry:
|
||||
// CHECK:STDOUT: %.loc16_20.2.temp = alloca [3 x i32], align 4
|
||||
// CHECK:STDOUT: %.loc16_20.4.array.index = getelementptr inbounds [3 x i32], ptr %.loc16_20.2.temp, i32 0, i32 0
|
||||
@@ -51,3 +51,7 @@ fn G() -> i32 {
|
||||
// CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
// CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug)
|
||||
// CHECK:STDOUT: !3 = !DIFile(filename: "function_param.carbon", directory: "")
|
||||
// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", scope: null, type: !5, spFlags: DISPFlagDefinition, unit: !2)
|
||||
// CHECK:STDOUT: !5 = !DISubroutineType(types: !6)
|
||||
// CHECK:STDOUT: !6 = !{}
|
||||
// CHECK:STDOUT: !7 = distinct !DISubprogram(name: "G", scope: null, type: !5, spFlags: DISPFlagDefinition, unit: !2)
|
||||
|
||||
Reference in New Issue
Block a user