diff options
-rw-r--r-- | lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 7 | ||||
-rw-r--r-- | test/CodeGen/X86/dbg-value-terminator.ll | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 69ff329057..7f4ba7a0d9 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -562,8 +562,11 @@ static bool emitDebugValueComment(const MachineInstr *MI, AsmPrinter &AP) { // cast away const; DIetc do not take const operands for some reason. DIVariable V(const_cast<MDNode*>(MI->getOperand(2).getMetadata())); - if (V.getContext().isSubprogram()) - OS << DISubprogram(V.getContext()).getDisplayName() << ":"; + if (V.getContext().isSubprogram()) { + StringRef Name = DISubprogram(V.getContext()).getDisplayName(); + if (!Name.empty()) + OS << Name << ":"; + } OS << V.getName() << " <- "; // Register or immediate value. Register 0 means undef. diff --git a/test/CodeGen/X86/dbg-value-terminator.ll b/test/CodeGen/X86/dbg-value-terminator.ll index ed0b2129a7..e7c12507d8 100644 --- a/test/CodeGen/X86/dbg-value-terminator.ll +++ b/test/CodeGen/X86/dbg-value-terminator.ll @@ -6,7 +6,7 @@ ; terminator. ; ; CHECK: test: -; CHECK: ##DEBUG_VALUE: :i +; CHECK: ##DEBUG_VALUE: i %a = type { i32, i32 } define hidden fastcc %a* @test() #1 { |