@@ -30,8 +30,8 @@ define i32 @instruction_loc(i32 %arg1) {
3030}
3131
3232; CHECK-DAG: #[[RAW_FILE_LOC:.+]] = loc("debug-info.ll":1:2)
33- ; CHECK-DAG: #[[SP:.+]] = #llvm.di_subprogram<compileUnit = #{{.*}}, scope = #{{.*}}, name = "instruction_loc"
34- ; CHECK-DAG: #[[CALLEE:.+]] = #llvm.di_subprogram<compileUnit = #{{.*}}, scope = #{{.*}}, name = "callee"
33+ ; CHECK-DAG: #[[SP:.+]] = #llvm.di_subprogram<id = distinct[{{.*}}]<>, compileUnit = #{{.*}}, scope = #{{.*}}, name = "instruction_loc"
34+ ; CHECK-DAG: #[[CALLEE:.+]] = #llvm.di_subprogram<id = distinct[{{.*}}]<>, compileUnit = #{{.*}}, scope = #{{.*}}, name = "callee"
3535; CHECK-DAG: #[[FILE_LOC]] = loc(fused<#[[SP]]>[#[[RAW_FILE_LOC]]])
3636; CHECK-DAG: #[[RAW_CALLEE_LOC:.+]] = loc("debug-info.ll":7:4)
3737; CHECK-DAG: #[[CALLEE_LOC:.+]] = loc(fused<#[[CALLEE]]>[#[[RAW_CALLEE_LOC]]])
@@ -63,7 +63,7 @@ define i32 @lexical_block(i32 %arg1) {
6363 ret i32 %2
6464}
6565; CHECK: #[[FILE:.+]] = #llvm.di_file<"debug-info.ll" in "/">
66- ; CHECK: #[[SP:.+]] = #llvm.di_subprogram<compileUnit =
66+ ; CHECK: #[[SP:.+]] = #llvm.di_subprogram<id = distinct[{{.*}}]<>, compileUnit =
6767; CHECK: #[[LB0:.+]] = #llvm.di_lexical_block<scope = #[[SP]]>
6868; CHECK: #[[LB1:.+]] = #llvm.di_lexical_block<scope = #[[SP]], file = #[[FILE]], line = 2, column = 2>
6969; CHECK: #[[LOC0]] = loc(fused<#[[LB0]]>[{{.*}}])
@@ -93,7 +93,7 @@ define i32 @lexical_block_file(i32 %arg1) {
9393 ret i32 %2
9494}
9595; CHECK: #[[FILE:.+]] = #llvm.di_file<"debug-info.ll" in "/">
96- ; CHECK: #[[SP:.+]] = #llvm.di_subprogram<compileUnit =
96+ ; CHECK: #[[SP:.+]] = #llvm.di_subprogram<id = distinct[{{.*}}]<>, compileUnit =
9797; CHECK: #[[LB0:.+]] = #llvm.di_lexical_block_file<scope = #[[SP]], discriminator = 0>
9898; CHECK: #[[LB1:.+]] = #llvm.di_lexical_block_file<scope = #[[SP]], file = #[[FILE]], discriminator = 0>
9999; CHECK: #[[LOC0]] = loc(fused<#[[LB0]]>[
@@ -200,7 +200,7 @@ define void @composite_type() !dbg !3 {
200200; CHECK-DAG: #[[CU:.+]] = #llvm.di_compile_unit<id = distinct[0]<>, sourceLanguage = DW_LANG_C, file = #[[FILE]], isOptimized = false, emissionKind = None>
201201; Verify an empty subroutine types list is supported.
202202; CHECK-DAG: #[[SP_TYPE:.+]] = #llvm.di_subroutine_type<callingConvention = DW_CC_normal>
203- ; CHECK-DAG: #[[SP:.+]] = #llvm.di_subprogram<compileUnit = #[[CU]], scope = #[[FILE]], name = "subprogram", linkageName = "subprogram", file = #[[FILE]], line = 42, scopeLine = 42, subprogramFlags = Definition, type = #[[SP_TYPE]]>
203+ ; CHECK-DAG: #[[SP:.+]] = #llvm.di_subprogram<id = distinct[{{.*}}]<>, compileUnit = #[[CU]], scope = #[[FILE]], name = "subprogram", linkageName = "subprogram", file = #[[FILE]], line = 42, scopeLine = 42, subprogramFlags = Definition, type = #[[SP_TYPE]]>
204204
205205define void @subprogram () !dbg !3 {
206206 ret void
@@ -224,7 +224,7 @@ define void @func_loc() !dbg !3 {
224224}
225225; CHECK-DAG: #[[NAME_LOC:.+]] = loc("func_loc")
226226; CHECK-DAG: #[[FILE_LOC:.+]] = loc("debug-info.ll":42:0)
227- ; CHECK-DAG: #[[SP:.+]] = #llvm.di_subprogram<compileUnit = #{{.*}}, scope = #{{.*}}, name = "func_loc", file = #{{.*}}, line = 42, subprogramFlags = Definition>
227+ ; CHECK-DAG: #[[SP:.+]] = #llvm.di_subprogram<id = distinct[{{.*}}]<>, compileUnit = #{{.*}}, scope = #{{.*}}, name = "func_loc", file = #{{.*}}, line = 42, subprogramFlags = Definition>
228228
229229; CHECK: loc(fused<#[[SP]]>[#[[NAME_LOC]], #[[FILE_LOC]]]
230230
@@ -300,7 +300,7 @@ define void @class_method() {
300300; CHECK: #[[COMP:.+]] = #llvm.di_composite_type<tag = DW_TAG_class_type, name = "class_name", file = #{{.*}}, line = 42, flags = "TypePassByReference|NonTrivial">
301301; CHECK: #[[COMP_PTR:.+]] = #llvm.di_derived_type<tag = DW_TAG_pointer_type, baseType = #[[COMP]], sizeInBits = 64>
302302; CHECK: #[[SP_TYPE:.+]] = #llvm.di_subroutine_type<types = #{{.*}}, #[[COMP_PTR]]>
303- ; CHECK: #[[SP:.+]] = #llvm.di_subprogram<compileUnit = #{{.*}}, scope = #[[COMP]], name = "class_method", file = #{{.*}}, subprogramFlags = Definition, type = #[[SP_TYPE]]>
303+ ; CHECK: #[[SP:.+]] = #llvm.di_subprogram<id = distinct[{{.*}}]<>, compileUnit = #{{.*}}, scope = #[[COMP]], name = "class_method", file = #{{.*}}, subprogramFlags = Definition, type = #[[SP_TYPE]]>
304304; CHECK: #[[LOC]] = loc(fused<#[[SP]]>
305305
306306!llvm.dbg.cu = !{!1 }
@@ -485,7 +485,7 @@ declare void @llvm.dbg.value(metadata, metadata, metadata)
485485; // -----
486486
487487; CHECK-DAG: #[[NAMESPACE:.+]] = #llvm.di_namespace<name = "std", exportSymbols = false>
488- ; CHECK-DAG: #[[SUBPROGRAM:.+]] = #llvm.di_subprogram<compileUnit = #{{.*}}, scope = #[[NAMESPACE]], name = "namespace"
488+ ; CHECK-DAG: #[[SUBPROGRAM:.+]] = #llvm.di_subprogram<id = distinct[{{.*}}]<>, compileUnit = #{{.*}}, scope = #[[NAMESPACE]], name = "namespace"
489489
490490define void @namespace (ptr %arg ) {
491491 call void @llvm.dbg.value (metadata ptr %arg , metadata !7 , metadata !DIExpression ()), !dbg !9
@@ -506,7 +506,7 @@ declare void @llvm.dbg.value(metadata, metadata, metadata)
506506
507507; // -----
508508
509- ; CHECK-DAG: #[[SUBPROGRAM:.+]] = #llvm.di_subprogram<compileUnit = #{{.*}}, scope = #{{.*}}, name = "noname_variable"
509+ ; CHECK-DAG: #[[SUBPROGRAM:.+]] = #llvm.di_subprogram<id = distinct[{{.*}}]<>, compileUnit = #{{.*}}, scope = #{{.*}}, name = "noname_variable"
510510; CHECK-DAG: #[[LOCAL_VARIABLE:.+]] = #llvm.di_local_variable<scope = #[[SUBPROGRAM]]>
511511
512512define void @noname_variable (ptr %arg ) {
@@ -527,7 +527,7 @@ declare void @llvm.dbg.value(metadata, metadata, metadata)
527527
528528; // -----
529529
530- ; CHECK: #[[SUBPROGRAM:.*]] = #llvm.di_subprogram<compileUnit = #{{.*}}, scope = #{{.*}}, file = #{{.*}}, subprogramFlags = Definition>
530+ ; CHECK: #[[SUBPROGRAM:.*]] = #llvm.di_subprogram<id = distinct[{{.*}}]<>, compileUnit = #{{.*}}, scope = #{{.*}}, file = #{{.*}}, subprogramFlags = Definition>
531531; CHECK: #[[FUNC_LOC:.*]] = loc(fused<#[[SUBPROGRAM]]>[{{.*}}])
532532define void @noname_subprogram (ptr %arg ) !dbg !8 {
533533 ret void
@@ -547,7 +547,7 @@ define void @noname_subprogram(ptr %arg) !dbg !8 {
547547; CHECK-SAME: configMacros = "bar", includePath = "/",
548548; CHECK-SAME: apinotes = "/", line = 42, isDecl = true
549549; CHECK-SAME: >
550- ; CHECK: #[[SUBPROGRAM:.+]] = #llvm.di_subprogram<compileUnit = #{{.*}}, scope = #[[MODULE]], name = "func_in_module"
550+ ; CHECK: #[[SUBPROGRAM:.+]] = #llvm.di_subprogram<id = distinct[{{.*}}]<>, compileUnit = #{{.*}}, scope = #[[MODULE]], name = "func_in_module"
551551
552552define void @func_in_module (ptr %arg ) !dbg !8 {
553553 ret void
@@ -614,3 +614,16 @@ define void @distinct_cu_func1() !dbg !5 {
614614!4 = distinct !DISubprogram (name: "func" , linkageName: "func" , scope: !6 , file: !6 , line: 1 , scopeLine: 1 , flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: !0 )
615615!5 = distinct !DISubprogram (name: "func" , linkageName: "func" , scope: !6 , file: !6 , line: 1 , scopeLine: 1 , flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: !1 )
616616!6 = !DIFile (filename: "file.hpp" , directory: "/" )
617+
618+ ; // -----
619+
620+ ; CHECK-LABEL: @declaration
621+ declare !dbg !1 void @declaration ()
622+
623+ ; CHECK: #di_subprogram = #llvm.di_subprogram<
624+ ; CHECK-NOT: id = distinct
625+
626+ !llvm.module.flags = !{!0 }
627+ !0 = !{i32 2 , !"Debug Info Version" , i32 3 }
628+ !1 = !DISubprogram (name: "declaration" , scope: !2 , file: !2 , flags: DIFlagPrototyped, spFlags: DISPFlagOptimized)
629+ !2 = !DIFile (filename: "debug-info.ll" , directory: "/" )
0 commit comments