diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -3551,6 +3551,7 @@ if (LinkageName == Name || (!CGM.getCodeGenOpts().EmitGcovArcs && !CGM.getCodeGenOpts().EmitGcovNotes && !CGM.getCodeGenOpts().DebugInfoForProfiling && + !CGM.getCodeGenOpts().PseudoProbeForProfiling && DebugKind <= codegenoptions::DebugLineTablesOnly)) LinkageName = StringRef(); diff --git a/clang/test/CodeGen/debug-info-pseudo-probe.cpp b/clang/test/CodeGen/debug-info-pseudo-probe.cpp new file mode 100644 --- /dev/null +++ b/clang/test/CodeGen/debug-info-pseudo-probe.cpp @@ -0,0 +1,12 @@ +// This test checks if a symbol gets mangled dwarf names with -fpseudo-probe-for-profiling option. +// RUN: %clang_cc1 -triple x86_64 -x c++ -S -emit-llvm -debug-info-kind=line-tables-only -o - < %s | FileCheck %s --check-prefix=PLAIN +// RUN: %clang_cc1 -triple x86_64 -x c++ -S -emit-llvm -debug-info-kind=line-tables-only -fpseudo-probe-for-profiling -o - < %s | FileCheck %s --check-prefix=MANGLE + +int foo() { + return 0; +} + +// PLAIN: define dso_local i32 @_Z3foov() +// PLAIN: distinct !DISubprogram(name: "foo", scope: +// MANGLE: define dso_local i32 @_Z3foov() +// MANGLE: distinct !DISubprogram(name: "foo", linkageName: "_Z3foov"