diff options
Diffstat (limited to 'lib/IRReader/IRReader.cpp')
-rw-r--r-- | lib/IRReader/IRReader.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/IRReader/IRReader.cpp b/lib/IRReader/IRReader.cpp index e72990751b..01aa074aba 100644 --- a/lib/IRReader/IRReader.cpp +++ b/lib/IRReader/IRReader.cpp @@ -108,10 +108,13 @@ LLVMBool LLVMParseIRInContext(LLVMContextRef ContextRef, if(!*OutM) { if (OutMessage) { - string_ostream os; + std::string buf; + raw_string_ostream os(buf); + Diag.print(nullptr, os, false); - os << '\0'; - *OutMessage = strdup(os.str().data()); + os.flush(); + + *OutMessage = strdup(buf.c_str()); } return 1; } |