@@ -28,6 +28,13 @@ struct S {
2828 }
2929}
3030
31+ uint foo (S s, A a, B b) {
32+ return s.foo() + a.foo() + b.foo();
33+ // CHECK: _D3dbg3fooFMS3dbg1SC3dbg1AC3dbg1BZk({{.*}} !dbg [[FOO:![a-z0-9\.]+]] {
34+ // CHECK: tail call i32 {{%[a-z0-9\.]+}}(ptr nonnull %arg.a), !dbg [[DEBUGLOC0:![a-z0-9\.]+]]
35+ // CHECK: tail call i32 {{%[a-z0-9\.]+}}(ptr nonnull %arg.b), !dbg [[DEBUGLOC1:![a-z0-9\.]+]]
36+ }
37+
3138// CHECK: !llvm.dbg.cu = !{[[CU:![a-z0-9\.]+]]}
3239
3340// CHECK-DAG: [[VOID:![a-z0-9\.]+]] = !DIBasicType(name: "void")
@@ -58,11 +65,18 @@ struct S {
5865// CHECK-DAG: [[B_REF:![a-z0-9\.]+]] = !DIDerivedType(tag: DW_TAG_reference_type, baseType: [[B]])
5966// CHECK-DAG: [[B_FOO_TYPE_ELEMENTS:![a-z0-9\.]+]] = !{[[UINT]], [[B_REF]]}
6067// CHECK-DAG: [[B_FOO_TYPE:![a-z0-9\.]+]] = !DISubroutineType(types: [[B_FOO_TYPE_ELEMENTS]])
61- // CHECK-DAG: [[B_FOO:![a-z0-9\.]+ ]] = distinct !DISubprogram(name: "foo", linkageName: "_D3dbg1B3fooFC3dbg1BZk", scope: [[B]], file: [[FILE]], line: 18, type: [[B_FOO_TYPE]], spFlags: DISPFlagDefinition, unit: [[CU]])
68+ // CHECK-DAG: [[B_FOO]] = distinct !DISubprogram(name: "foo", linkageName: "_D3dbg1B3fooFC3dbg1BZk", scope: [[B]], file: [[FILE]], line: 18, type: [[B_FOO_TYPE]], spFlags: DISPFlagDefinition, unit: [[CU]])
6269
6370// CHECK-DAG: [[S_FIELDS:![a-z0-9\.]+]] = !{}
6471// CHECK-DAG: [[S:![a-z0-9\.]+]] = !DICompositeType(tag: DW_TAG_structure_type, name: "S", scope: [[MODULE]], file: [[FILE]], line: 24, align: 8, elements: [[S_FIELDS]], identifier: "S3dbg1S")
6572// CHECK-DAG: [[S_REF:![a-z0-9\.]+]] = !DIDerivedType(tag: DW_TAG_reference_type, baseType: [[S]])
6673// CHECK-DAG: [[S_FOO_TYPE_ELEMENTS:![a-z0-9\.]+]] = !{[[UINT]], [[S_REF]]}
6774// CHECK-DAG: [[S_FOO_TYPE:![a-z0-9\.]+]] = !DISubroutineType(types: [[S_FOO_TYPE_ELEMENTS]])
68- // CHECK-DAG: [[S_FOO:![a-z0-9\.]+]] = distinct !DISubprogram(name: "foo", linkageName: "_D3dbg1S3fooFKS3dbg1SZk", scope: [[S]], file: [[FILE]], line: 25, type: !28, spFlags: DISPFlagDefinition, unit: [[CU]])
75+ // CHECK-DAG: [[S_FOO]] = distinct !DISubprogram(name: "foo", linkageName: "_D3dbg1S3fooFKS3dbg1SZk", scope: [[S]], file: [[FILE]], line: 25, type: [[S_FOO_TYPE]], spFlags: DISPFlagDefinition, unit: [[CU]])
76+
77+ // CHECK-DAG: [[FOO_TYPE_ELEMENTS:![a-z0-9\.]+]] = !{[[UINT]], [[S]], [[A_REF]], [[B_REF]]}
78+ // CHECK-DAG: [[FOO_TYPE:![a-z0-9\.]+]] = !DISubroutineType(types: [[FOO_TYPE_ELEMENTS]])
79+ // CHECK-DAG: [[FOO]] = distinct !DISubprogram(name: "foo", linkageName: "_D3dbg3fooFMS3dbg1SC3dbg1AC3dbg1BZk", scope: [[MODULE]], file: [[FILE]], line: 31, type: [[FOO_TYPE]], spFlags: DISPFlagDefinition, unit: [[CU]])
80+
81+ // CHECK-DAG: [[DEBUGLOC0]] = !DILocation(line: 32, column: 18, scope: [[FOO]])
82+ // CHECK-DAG: [[DEBUGLOC1]] = !DILocation(line: 32, column: 28, scope: [[FOO]])
0 commit comments