diff --git a/lib/Analysis/CFGPrinter.cpp b/lib/Analysis/CFGPrinter.cpp index bb2912b060e..4d6819d4fa4 100644 --- a/lib/Analysis/CFGPrinter.cpp +++ b/lib/Analysis/CFGPrinter.cpp @@ -21,6 +21,7 @@ #include "llvm/Pass.h" #include "llvm/Function.h" #include "llvm/iTerminators.h" +#include "llvm/Assembly/Writer.h" #include "llvm/Support/CFG.h" #include #include @@ -39,9 +40,14 @@ struct DOTGraphTraits : public DefaultDOTGraphTraits { static std::string getNodeLabel(const BasicBlock *Node, const Function *Graph) { - if (CFGOnly) return Node->getName() + ":"; + if (CFGOnly && !Node->getName().empty()) return Node->getName() + ":"; std::ostringstream Out; + if (CFGOnly) { + WriteAsOperand(Out, Node, false, true); + return Out.str(); + } + Out << *Node; std::string OutStr = Out.str(); if (OutStr[0] == '\n') OutStr.erase(OutStr.begin());