diff --git a/llvm/include/llvm/IR/DiagnosticInfo.h b/llvm/include/llvm/IR/DiagnosticInfo.h index 8ae0c1d0ef3a..589a0c013aea 100644 --- a/llvm/include/llvm/IR/DiagnosticInfo.h +++ b/llvm/include/llvm/IR/DiagnosticInfo.h @@ -387,7 +387,7 @@ public: std::string Val; explicit Argument(StringRef Str = "") : Key("String"), Val(Str) {} - Argument(StringRef Key, Value *V) : Key(Key), Val(V->getName()) {} + Argument(StringRef Key, Value *V); Argument(StringRef Key, int N); Argument(StringRef Key, unsigned N); Argument(StringRef Key, bool B) : Key(Key), Val(B ? "true" : "false") {} diff --git a/llvm/lib/IR/DiagnosticInfo.cpp b/llvm/lib/IR/DiagnosticInfo.cpp index e9187a9ce636..ae10a6dcae6c 100644 --- a/llvm/lib/IR/DiagnosticInfo.cpp +++ b/llvm/lib/IR/DiagnosticInfo.cpp @@ -170,6 +170,8 @@ const std::string DiagnosticInfoWithDebugLocBase::getLocationStr() const { getLocation(&Filename, &Line, &Column); return (Filename + ":" + Twine(Line) + ":" + Twine(Column)).str(); } +DiagnosticInfoOptimizationBase::Argument::Argument(StringRef Key, Value *V) + : Key(Key), Val(GlobalValue::getRealLinkageName(V->getName())) {} DiagnosticInfoOptimizationBase::Argument::Argument(StringRef Key, int N) : Key(Key), Val(itostr(N)) {} diff --git a/llvm/test/Transforms/Inline/optimization-remarks-yaml.ll b/llvm/test/Transforms/Inline/optimization-remarks-yaml.ll index 870352d3b6de..8c690d9ed4a7 100644 --- a/llvm/test/Transforms/Inline/optimization-remarks-yaml.ll +++ b/llvm/test/Transforms/Inline/optimization-remarks-yaml.ll @@ -50,14 +50,14 @@ target triple = "x86_64-apple-macosx10.11.0" define i32 @baz() !dbg !7 !prof !14 { entry: %call = call i32 (...) @foo(), !dbg !9 - %call1 = call i32 (...) @bar(), !dbg !10 + %call1 = call i32 (...) @"\01bar"(), !dbg !10 %add = add nsw i32 %call, %call1, !dbg !12 ret i32 %add, !dbg !13 } declare i32 @foo(...) -declare i32 @bar(...) +declare i32 @"\01bar"(...) !llvm.dbg.cu = !{!0} !llvm.module.flags = !{!3, !4, !5}