diff options
Diffstat (limited to 'lib/Analysis')
-rw-r--r-- | lib/Analysis/Analysis.cpp | 9 | ||||
-rw-r--r-- | lib/Analysis/BlockFrequencyInfo.cpp | 7 | ||||
-rw-r--r-- | lib/Analysis/Lint.cpp | 7 |
3 files changed, 12 insertions, 11 deletions
diff --git a/lib/Analysis/Analysis.cpp b/lib/Analysis/Analysis.cpp index 907203c571..ade940a7d3 100644 --- a/lib/Analysis/Analysis.cpp +++ b/lib/Analysis/Analysis.cpp @@ -75,7 +75,8 @@ void LLVMInitializeAnalysis(LLVMPassRegistryRef R) { LLVMBool LLVMVerifyModule(LLVMModuleRef M, LLVMVerifierFailureAction Action, char **OutMessages) { raw_ostream *DebugOS = Action != LLVMReturnStatusAction ? &errs() : nullptr; - string_ostream MsgsOS; + std::string Messages; + raw_string_ostream MsgsOS(Messages); LLVMBool Result = verifyModule(*unwrap(M), OutMessages ? &MsgsOS : DebugOS); @@ -86,10 +87,8 @@ LLVMBool LLVMVerifyModule(LLVMModuleRef M, LLVMVerifierFailureAction Action, if (Action == LLVMAbortProcessAction && Result) report_fatal_error("Broken module found, compilation aborted!"); - if (OutMessages) { - MsgsOS << '\0'; - *OutMessages = strdup(MsgsOS.str().data()); - } + if (OutMessages) + *OutMessages = strdup(MsgsOS.str().c_str()); return Result; } diff --git a/lib/Analysis/BlockFrequencyInfo.cpp b/lib/Analysis/BlockFrequencyInfo.cpp index 7e702c3143..8ed8e3e4c2 100644 --- a/lib/Analysis/BlockFrequencyInfo.cpp +++ b/lib/Analysis/BlockFrequencyInfo.cpp @@ -82,9 +82,10 @@ struct DOTGraphTraits<BlockFrequencyInfo*> : public DefaultDOTGraphTraits { std::string getNodeLabel(const BasicBlock *Node, const BlockFrequencyInfo *Graph) { - string_ostream OS; + std::string Result; + raw_string_ostream OS(Result); - OS << Node->getName() << ":"; + OS << Node->getName().str() << ":"; switch (ViewBlockFreqPropagationDAG) { case GVDT_Fraction: Graph->printBlockFreq(OS, Node); @@ -97,7 +98,7 @@ struct DOTGraphTraits<BlockFrequencyInfo*> : public DefaultDOTGraphTraits { "never reach this point."); } - return OS.str(); + return Result; } }; diff --git a/lib/Analysis/Lint.cpp b/lib/Analysis/Lint.cpp index 806a1fdee5..b14f3292e9 100644 --- a/lib/Analysis/Lint.cpp +++ b/lib/Analysis/Lint.cpp @@ -105,10 +105,11 @@ namespace { const DataLayout *DL; TargetLibraryInfo *TLI; - string_ostream MessagesStr; + std::string Messages; + raw_string_ostream MessagesStr; static char ID; // Pass identification, replacement for typeid - Lint() : FunctionPass(ID) { + Lint() : FunctionPass(ID), MessagesStr(Messages) { initializeLintPass(*PassRegistry::getPassRegistry()); } @@ -180,7 +181,7 @@ bool Lint::runOnFunction(Function &F) { TLI = &getAnalysis<TargetLibraryInfo>(); visit(F); dbgs() << MessagesStr.str(); - MessagesStr.clear(); + Messages.clear(); return false; } |