summaryrefslogtreecommitdiff
path: root/lib/Analysis/Analysis.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Analysis/Analysis.cpp')
-rw-r--r--lib/Analysis/Analysis.cpp9
1 files changed, 4 insertions, 5 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;
}