diff options
Diffstat (limited to 'lib/Analysis/Analysis.cpp')
-rw-r--r-- | lib/Analysis/Analysis.cpp | 9 |
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; } |