alok created this revision.
alok added reviewers: aprantl, djtodoro, jini.susan.
alok added a project: debug-info.
Herald added a project: All.
alok requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

Currently Clang is generating subprograms without DW_AT_name. which is fine for 
LLDB but other debuggers (GNU gdb) can not be forced to accept such DWARF due 
to DWARF standard mandating DW_AT_name attribute for subprograms.

As per DWARF standard Subroutine must have DW_AT_name attribute.
Please consider below lines from DWARF(5) document

  3.3.1 General Subroutine and Entry Point Information
   The subroutine or entry point entry has a DW_AT_name attribute whose value is
   a null-terminated string containing the subroutine or entry point name. It 
may
   also have a DW_AT_linkage_name attribute as described in Section 2.22 on
   page 56.

Current behavior of Clang prevents gdb to show variables in shared/private 
clause of Openmp task construct.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D121100

Files:
  clang/lib/CodeGen/CGDebugInfo.cpp
  clang/test/CodeGen/constructor-attribute.c
  clang/test/CodeGen/debug-info-oslog.c
  clang/test/CodeGenCXX/aix-static-init-debug-info.cpp
  clang/test/CodeGenCXX/debug-info-blocks.cpp
  clang/test/CodeGenCXX/debug-info-thunk.cpp
  clang/test/CodeGenCXX/difile_entry.cpp
  clang/test/CodeGenCXX/globalinit-loc.cpp
  clang/test/CodeGenObjC/block-byref-debuginfo.m
  clang/test/CodeGenObjC/debug-info-block-helper.m
  clang/test/CodeGenObjC/debug-info-blocks.m
  clang/test/CodeGenObjC/nontrivial-c-struct-exception.m
  clang/test/OpenMP/master_taskloop_reduction_codegen.cpp
  clang/test/OpenMP/master_taskloop_simd_reduction_codegen.cpp
  clang/test/OpenMP/parallel_master_taskloop_reduction_codegen.cpp
  clang/test/OpenMP/parallel_master_taskloop_simd_reduction_codegen.cpp
  clang/test/OpenMP/simd_codegen.cpp
  clang/test/OpenMP/taskgroup_task_reduction_codegen.cpp
  clang/test/OpenMP/taskloop_reduction_codegen.cpp
  clang/test/OpenMP/taskloop_simd_reduction_codegen.cpp

Index: clang/test/OpenMP/taskloop_simd_reduction_codegen.cpp
===================================================================
--- clang/test/OpenMP/taskloop_simd_reduction_codegen.cpp
+++ clang/test/OpenMP/taskloop_simd_reduction_codegen.cpp
@@ -213,12 +213,12 @@
 // CHECK: store float %{{.+}}, float* %
 // CHECK: ret void
 
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_FINI2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT4]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB4]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_FINI2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT4]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB4]]"
Index: clang/test/OpenMP/taskloop_reduction_codegen.cpp
===================================================================
--- clang/test/OpenMP/taskloop_reduction_codegen.cpp
+++ clang/test/OpenMP/taskloop_reduction_codegen.cpp
@@ -220,13 +220,13 @@
 // CHECK: call i8* @__kmpc_task_reduction_get_th_data(
 // CHECK: call i8* @__kmpc_task_reduction_get_th_data(
 
-// CHECK-DAG: distinct !DISubprogram(linkageName: "[[TASK]]", scope: !
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_FINI2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT4]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB4]]"
+// CHECK-DAG: distinct !DISubprogram(name: "[[TASK]]", scope: !
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_FINI2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT4]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB4]]"
Index: clang/test/OpenMP/taskgroup_task_reduction_codegen.cpp
===================================================================
--- clang/test/OpenMP/taskgroup_task_reduction_codegen.cpp
+++ clang/test/OpenMP/taskgroup_task_reduction_codegen.cpp
@@ -246,14 +246,14 @@
 #endif
 
 // DEBUG-LABEL: distinct !DICompileUnit
-// DEBUG-DAG: distinct !DISubprogram(linkageName: "[[AINIT]]",
-// DEBUG-DAG: distinct !DISubprogram(linkageName: "[[ACOMB]]",
-// DEBUG-DAG: distinct !DISubprogram(linkageName: "[[BINIT]]",
-// DEBUG-DAG: distinct !DISubprogram(linkageName: "[[BCOMB]]",
-// DEBUG-DAG: distinct !DISubprogram(linkageName: "[[ARGCINIT]]",
-// DEBUG-DAG: distinct !DISubprogram(linkageName: "[[ARGCCOMB]]",
-// DEBUG-DAG: distinct !DISubprogram(linkageName: "[[CINIT]]",
-// DEBUG-DAG: distinct !DISubprogram(linkageName: "[[CFINI]]",
-// DEBUG-DAG: distinct !DISubprogram(linkageName: "[[CCOMB]]",
-// DEBUG-DAG: distinct !DISubprogram(linkageName: "[[VLAINIT]]",
-// DEBUG-DAG: distinct !DISubprogram(linkageName: "[[VLACOMB]]",
+// DEBUG-DAG: distinct !DISubprogram(name: "[[AINIT]]",
+// DEBUG-DAG: distinct !DISubprogram(name: "[[ACOMB]]",
+// DEBUG-DAG: distinct !DISubprogram(name: "[[BINIT]]",
+// DEBUG-DAG: distinct !DISubprogram(name: "[[BCOMB]]",
+// DEBUG-DAG: distinct !DISubprogram(name: "[[ARGCINIT]]",
+// DEBUG-DAG: distinct !DISubprogram(name: "[[ARGCCOMB]]",
+// DEBUG-DAG: distinct !DISubprogram(name: "[[CINIT]]",
+// DEBUG-DAG: distinct !DISubprogram(name: "[[CFINI]]",
+// DEBUG-DAG: distinct !DISubprogram(name: "[[CCOMB]]",
+// DEBUG-DAG: distinct !DISubprogram(name: "[[VLAINIT]]",
+// DEBUG-DAG: distinct !DISubprogram(name: "[[VLACOMB]]",
Index: clang/test/OpenMP/simd_codegen.cpp
===================================================================
--- clang/test/OpenMP/simd_codegen.cpp
+++ clang/test/OpenMP/simd_codegen.cpp
@@ -860,7 +860,7 @@
 S8 s8(0);
 
 // TERM_DEBUG-NOT: line: 0,
-// TERM_DEBUG: distinct !DISubprogram(linkageName: "_GLOBAL__sub_I_simd_codegen.cpp",
+// TERM_DEBUG: distinct !DISubprogram(name: "_GLOBAL__sub_I_simd_codegen.cpp",
 // OMP50-DAG: ![[NOVECT:.+]] = !{!"llvm.loop.vectorize.enable", i1 false}
 // OMP50-DAG: ![[DISABLE_VECT]] = distinct !{{.*}}![[NOVECT]]{{[,}]}}
 #endif // HEADER
Index: clang/test/OpenMP/parallel_master_taskloop_simd_reduction_codegen.cpp
===================================================================
--- clang/test/OpenMP/parallel_master_taskloop_simd_reduction_codegen.cpp
+++ clang/test/OpenMP/parallel_master_taskloop_simd_reduction_codegen.cpp
@@ -228,13 +228,13 @@
 // CHECK: call i8* @__kmpc_task_reduction_get_th_data(
 // CHECK-NOT: call i8* @__kmpc_threadprivate_cached(
 
-// CHECK-DAG: distinct !DISubprogram(linkageName: "[[TASK]]", scope: !
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_FINI2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT4]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB4]]"
+// CHECK-DAG: distinct !DISubprogram(name: "[[TASK]]", scope: !
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_FINI2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT4]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB4]]"
Index: clang/test/OpenMP/parallel_master_taskloop_reduction_codegen.cpp
===================================================================
--- clang/test/OpenMP/parallel_master_taskloop_reduction_codegen.cpp
+++ clang/test/OpenMP/parallel_master_taskloop_reduction_codegen.cpp
@@ -228,13 +228,13 @@
 // CHECK: call i8* @__kmpc_task_reduction_get_th_data(
 // CHECK-NOT: call i8* @__kmpc_threadprivate_cached(
 
-// CHECK-DAG: distinct !DISubprogram(linkageName: "[[TASK]]", scope: !
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_FINI2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT4]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB4]]"
+// CHECK-DAG: distinct !DISubprogram(name: "[[TASK]]", scope: !
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_FINI2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT4]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB4]]"
Index: clang/test/OpenMP/master_taskloop_simd_reduction_codegen.cpp
===================================================================
--- clang/test/OpenMP/master_taskloop_simd_reduction_codegen.cpp
+++ clang/test/OpenMP/master_taskloop_simd_reduction_codegen.cpp
@@ -213,12 +213,12 @@
 // CHECK: store float %{{.+}}, float* %
 // CHECK: ret void
 
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_FINI2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT4]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB4]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_FINI2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT4]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB4]]"
Index: clang/test/OpenMP/master_taskloop_reduction_codegen.cpp
===================================================================
--- clang/test/OpenMP/master_taskloop_reduction_codegen.cpp
+++ clang/test/OpenMP/master_taskloop_reduction_codegen.cpp
@@ -231,13 +231,13 @@
 // CHECK: call i8* @__kmpc_task_reduction_get_th_data(
 // CHECK-NOT: call i8* @__kmpc_threadprivate_cached(
 
-// CHECK-DAG: distinct !DISubprogram(linkageName: "[[TASK]]", scope: !
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB1]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_FINI2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB2]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB3]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_INIT4]]"
-// CHECK-DAG: !DISubprogram(linkageName: "[[RED_COMB4]]"
+// CHECK-DAG: distinct !DISubprogram(name: "[[TASK]]", scope: !
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB1]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_FINI2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB2]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB3]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_INIT4]]"
+// CHECK-DAG: !DISubprogram(name: "[[RED_COMB4]]"
Index: clang/test/CodeGenObjC/nontrivial-c-struct-exception.m
===================================================================
--- clang/test/CodeGenObjC/nontrivial-c-struct-exception.m
+++ clang/test/CodeGenObjC/nontrivial-c-struct-exception.m
@@ -66,5 +66,5 @@
 
 // CHECK-DAG: [[ARTIFICIAL_LOC_1]] = !DILocation(line: 0
 // CHECK-DAG: [[ARTIFICIAL_LOC_2]] = !DILocation(line: 0
-// CHECK: ![[DTOR_SP]] = distinct !DISubprogram(linkageName: "__destructor_8_w8",
+// CHECK: ![[DTOR_SP]] = distinct !DISubprogram(name: "__destructor_8_w8",
 // CHECK: ![[DTOR_LOC]] = !DILocation(line: 0, scope: ![[DTOR_SP]])
Index: clang/test/CodeGenObjC/debug-info-blocks.m
===================================================================
--- clang/test/CodeGenObjC/debug-info-blocks.m
+++ clang/test/CodeGenObjC/debug-info-blocks.m
@@ -25,9 +25,9 @@
 // CHECK: ret {{.*}}, !dbg ![[DESTROY_LINE]]
 
 // CHECK-DAG: [[DBG_LINE]] = !DILocation(line: 0, scope: ![[COPY_SP:[0-9]+]])
-// CHECK-DAG: [[COPY_SP]] = distinct !DISubprogram(linkageName: "__copy_helper_block_
+// CHECK-DAG: [[COPY_SP]] = distinct !DISubprogram(name: "__copy_helper_block_
 // CHECK-DAG: [[DESTROY_LINE]] = !DILocation(line: 0, scope: ![[DESTROY_SP:[0-9]+]])
-// CHECK-DAG: [[DESTROY_SP]] = distinct !DISubprogram(linkageName: "__destroy_helper_block_
+// CHECK-DAG: [[DESTROY_SP]] = distinct !DISubprogram(name: "__destroy_helper_block_
 typedef unsigned int NSUInteger;
 
 @protocol NSObject
Index: clang/test/CodeGenObjC/debug-info-block-helper.m
===================================================================
--- clang/test/CodeGenObjC/debug-info-block-helper.m
+++ clang/test/CodeGenObjC/debug-info-block-helper.m
@@ -2,7 +2,7 @@
 // RUN: %clang_cc1 -emit-llvm -fblocks -debug-info-kind=limited -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 %s -o - | FileCheck %s
 extern void foo(void(^)(void));
 
-// CHECK: !DISubprogram(linkageName: "__destroy_helper_block_8_32o40r48r"
+// CHECK: !DISubprogram(name: "__destroy_helper_block_8_32o40r48r"
 
 @interface NSObject {
   struct objc_object *isa;
Index: clang/test/CodeGenObjC/block-byref-debuginfo.m
===================================================================
--- clang/test/CodeGenObjC/block-byref-debuginfo.m
+++ clang/test/CodeGenObjC/block-byref-debuginfo.m
@@ -27,7 +27,7 @@
 
 // CHECK: !DILocalVariable(name: "foo", {{.*}}type: ![[FOOTY]])
 
-// CHECK: ![[BYREF_COPY_SP]] = distinct !DISubprogram(linkageName: "__Block_byref_object_copy_",
+// CHECK: ![[BYREF_COPY_SP]] = distinct !DISubprogram(name: "__Block_byref_object_copy_",
 // CHECK: ![[BYREF_COPY_LOC]] = !DILocation(line: 0, scope: ![[BYREF_COPY_SP]])
 
 struct Foo {
Index: clang/test/CodeGenCXX/globalinit-loc.cpp
===================================================================
--- clang/test/CodeGenCXX/globalinit-loc.cpp
+++ clang/test/CodeGenCXX/globalinit-loc.cpp
@@ -6,7 +6,7 @@
 //
 // CHECK: define internal {{.*}}void @_GLOBAL__sub_I_globalinit_loc.cpp({{.*}} {
 // CHECK: !dbg ![[DBG:.*]]
-// CHECK: !DISubprogram(linkageName: "_GLOBAL__sub_I_globalinit_loc.cpp"
+// CHECK: !DISubprogram(name: "_GLOBAL__sub_I_globalinit_loc.cpp"
 // CHECK-NOT:           line:
 // CHECK-SAME:          DISPFlagLocalToUnit
 // CHECK-SAME:          DISPFlagDefinition
Index: clang/test/CodeGenCXX/difile_entry.cpp
===================================================================
--- clang/test/CodeGenCXX/difile_entry.cpp
+++ clang/test/CodeGenCXX/difile_entry.cpp
@@ -10,4 +10,4 @@
 // CHECK: distinct !DIGlobalVariable(name: "i", {{.*}}, file: ![[#FILE:]],
 // CHECK: ![[#FILE]] = !DIFile(filename: "difile_entry.cpp", directory:
 // CHECK: distinct !DISubprogram(name: "__cxx_global_var_init", {{.*}}, file: ![[#FILE]],
-// CHECK: distinct !DISubprogram(linkageName: "_GLOBAL__sub_I_difile_entry.cpp", {{.*}}, file: ![[#FILE]]
+// CHECK: distinct !DISubprogram(name: "_GLOBAL__sub_I_difile_entry.cpp", {{.*}}, file: ![[#FILE]]
Index: clang/test/CodeGenCXX/debug-info-thunk.cpp
===================================================================
--- clang/test/CodeGenCXX/debug-info-thunk.cpp
+++ clang/test/CodeGenCXX/debug-info-thunk.cpp
@@ -29,7 +29,7 @@
     virtual void f();
   };
   
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "?f@C@Test1@@W7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "?f@C@Test1@@W7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
   void C::f() { }
 }
 
@@ -47,7 +47,7 @@
     virtual V2 *f();
   };
   
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "?f@B@Test2@@QEAAPEAUV1@2@XZ"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "?f@B@Test2@@QEAAPEAUV1@2@XZ"{{.*}} flags: {{.*}}DIFlagThunk
   V2 *B::f() { return 0; }
 }
 
@@ -66,7 +66,7 @@
     virtual void f();
   };
   
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "?f@C@Test3@@W7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "?f@C@Test3@@W7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
   void C::f() { }
 }
 
@@ -86,7 +86,7 @@
     };
   }
   void C::c() {}
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "?f@C@?A0x{{[^@]*}}@Test4@@W7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "?f@C@?A0x{{[^@]*}}@Test4@@W7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
   void C::f() {}
 
   // Force C::f to be used.
@@ -132,7 +132,7 @@
     virtual X f();
   };
 
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "?f@Thunks@Test5@@WBA@EAA?AUX@2@XZ"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "?f@Thunks@Test5@@WBA@EAA?AUX@2@XZ"{{.*}} flags: {{.*}}DIFlagThunk
   X Thunks::f() { return X(); }
 }
 
@@ -166,7 +166,7 @@
 
   class D : public B,
             public C {
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "?foo@D@Test6@@G7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "?foo@D@Test6@@G7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
     void foo() {}
     void bar() {}
     void baz(X, X&, _Complex float, Small, Small&, Large);
@@ -180,7 +180,7 @@
 namespace Test7 {
   struct A { virtual void foo(); };
   struct B { virtual void foo(); };
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "?foo@C@Test7@@W7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "?foo@C@Test7@@W7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
   struct C : A, B { void foo() {} };
 
   // Test later.
@@ -193,7 +193,7 @@
   struct A {             virtual A* f(); };
   struct B : virtual A { virtual A* f(); };
   struct C : B         { virtual C* f(); };
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "?f@C@Test8@@QEAAPEAUA@2@XZ"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "?f@C@Test8@@QEAAPEAUA@2@XZ"{{.*}} flags: {{.*}}DIFlagThunk
   C* C::f() { return 0; }
 }
 
@@ -211,8 +211,8 @@
     virtual ~D();
     virtual D &foo1();
   };
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "?foo1@D@Test9@@$4PPPPPPPE@A@EAAAEAUB1@2@XZ"{{.*}} flags: {{.*}}DIFlagThunk
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "?foo1@D@Test9@@$4PPPPPPPE@A@EAAAEAU12@XZ"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "?foo1@D@Test9@@$4PPPPPPPE@A@EAAAEAUB1@2@XZ"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "?foo1@D@Test9@@$4PPPPPPPE@A@EAAAEAU12@XZ"{{.*}} flags: {{.*}}DIFlagThunk
   D& D::foo1() {
     return *this;
   }
@@ -228,7 +228,7 @@
   class C : public A, public B  {
     virtual void f();
   };
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "?f@C@Test10@@G7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "?f@C@Test10@@G7EAAXXZ"{{.*}} flags: {{.*}}DIFlagThunk
   void C::f() {
   }
 }
@@ -240,7 +240,7 @@
   };
 
   void test() {
-// CHECK-DAG: DISubprogram{{.*}}linkageName: "??_9A@Test11@@$BA@AA"{{.*}} flags: {{.*}}DIFlagThunk
+// CHECK-DAG: DISubprogram{{.*}}name: "??_9A@Test11@@$BA@AA"{{.*}} flags: {{.*}}DIFlagThunk
     void (A::*p)() = &A::f;
   }
 }
@@ -266,7 +266,7 @@
   // ITANIUM-NOT: {{ret }}
   // ITANIUM: ret void, !dbg ![[DBG]]
   //
-  // ITANIUM: ![[SP]] = distinct !DISubprogram(linkageName: "_ZThn{{[48]}}_N6Test121C1fEv"
+  // ITANIUM: ![[SP]] = distinct !DISubprogram(name: "_ZThn{{[48]}}_N6Test121C1fEv"
   // ITANIUM-SAME:          line: 261
   // ITANIUM-SAME:          DIFlagArtificial
   // ITANIUM-SAME:          DIFlagThunk
Index: clang/test/CodeGenCXX/debug-info-blocks.cpp
===================================================================
--- clang/test/CodeGenCXX/debug-info-blocks.cpp
+++ clang/test/CodeGenCXX/debug-info-blocks.cpp
@@ -12,7 +12,7 @@
   ^{ (void)a; };
 }
 
-// CHECK: !DISubprogram(linkageName: "__Block_byref_object_copy_",
+// CHECK: !DISubprogram(name: "__Block_byref_object_copy_",
 // CHECK-SAME:          DISPFlagLocalToUnit | DISPFlagDefinition
-// CHECK: !DISubprogram(linkageName: "__Block_byref_object_dispose_",
+// CHECK: !DISubprogram(name: "__Block_byref_object_dispose_",
 // CHECK-SAME:          DISPFlagLocalToUnit | DISPFlagDefinition
Index: clang/test/CodeGenCXX/aix-static-init-debug-info.cpp
===================================================================
--- clang/test/CodeGenCXX/aix-static-init-debug-info.cpp
+++ clang/test/CodeGenCXX/aix-static-init-debug-info.cpp
@@ -58,9 +58,9 @@
 // CHECK: ![[DBGVAR20]] = distinct !DISubprogram(name: "__dtor_v", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: 14, type: !{{[0-9]+}}, scopeLine: 14, flags: DIFlagArtificial, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !{{[0-9]+}}, retainedNodes: !{{[0-9]+}})
 // CHECK: ![[DBGVAR21b]] = !DILocation(line: 0, scope: ![[DBGVAR20]])
 // CHECK: ![[DBGVAR21]] = !DILocation(line: 14, column: 3, scope: ![[DBGVAR20]])
-// CHECK: ![[DBGVAR22]] = distinct !DISubprogram(linkageName: "__finalize_v", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: 14, type: !{{[0-9]+}}, scopeLine: 14, flags: DIFlagArtificial, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !{{[0-9]+}}, retainedNodes: !{{[0-9]+}})
+// CHECK: ![[DBGVAR22]] = distinct !DISubprogram(name: "__finalize_v", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: 14, type: !{{[0-9]+}}, scopeLine: 14, flags: DIFlagArtificial, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !{{[0-9]+}}, retainedNodes: !{{[0-9]+}})
 // CHECK: ![[DBGVAR24]] = !DILocation(line: 14, column: 3, scope: ![[DBGVAR22]])
-// CHECK: ![[DBGVAR25]] = distinct !DISubprogram(linkageName: "_GLOBAL__sub_I__", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, type: !{{[0-9]+}}, flags: DIFlagArtificial, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !{{[0-9]+}}, retainedNodes: !{{[0-9]+}})
+// CHECK: ![[DBGVAR25]] = distinct !DISubprogram(name: "_GLOBAL__sub_I__", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, type: !{{[0-9]+}}, flags: DIFlagArtificial, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !{{[0-9]+}}, retainedNodes: !{{[0-9]+}})
 // CHECK: ![[DBGVAR26]] = !DILocation(line: 0, scope: ![[DBGVAR25]])
-// CHECK: ![[DBGVAR27]] = distinct !DISubprogram(linkageName: "_GLOBAL__D_a", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, type: !{{[0-9]+}}, flags: DIFlagArtificial, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !{{[0-9]+}}, retainedNodes: !{{[0-9]+}})
+// CHECK: ![[DBGVAR27]] = distinct !DISubprogram(name: "_GLOBAL__D_a", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, type: !{{[0-9]+}}, flags: DIFlagArtificial, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !{{[0-9]+}}, retainedNodes: !{{[0-9]+}})
 // CHECK: ![[DBGVAR28]] = !DILocation(line: 0, scope: ![[DBGVAR27]])
Index: clang/test/CodeGen/debug-info-oslog.c
===================================================================
--- clang/test/CodeGen/debug-info-oslog.c
+++ clang/test/CodeGen/debug-info-oslog.c
@@ -10,6 +10,6 @@
 // This helper is going to be uniqued, so it should not have a line
 // number between file and type.
 
-// CHECK: distinct !DISubprogram(linkageName: "__os_log_helper_1_0_1_4_0",
+// CHECK: distinct !DISubprogram(name: "__os_log_helper_1_0_1_4_0",
 // CHECK-SAME:                   file: !{{.*}}, type
 // CHECK-SAME:                   flags: DIFlagArtificial
Index: clang/test/CodeGen/constructor-attribute.c
===================================================================
--- clang/test/CodeGen/constructor-attribute.c
+++ clang/test/CodeGen/constructor-attribute.c
@@ -84,5 +84,5 @@
   return 0;
 }
 
-// CXAATEXIT: ![[GLOBAL_INIT_SP]] = distinct !DISubprogram(linkageName: "__GLOBAL_init_123",
+// CXAATEXIT: ![[GLOBAL_INIT_SP]] = distinct !DISubprogram(name: "__GLOBAL_init_123",
 // CXAATEXIT: ![[GLOBAL_INIT_LOC]] = !DILocation(line: 0, scope: ![[GLOBAL_INIT_SP]])
Index: clang/lib/CodeGen/CGDebugInfo.cpp
===================================================================
--- clang/lib/CodeGen/CGDebugInfo.cpp
+++ clang/lib/CodeGen/CGDebugInfo.cpp
@@ -4104,7 +4104,7 @@
   llvm::DINodeArray TParamsArray;
   if (!HasDecl) {
     // Use llvm function name.
-    LinkageName = Fn->getName();
+    Name = Fn->getName();
   } else if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
     // If there is a subprogram for this function available then use it.
     auto FI = SPCache.find(FD->getCanonicalDecl());
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to