Propagate a better error message to the C api.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 3 Feb 2015 01:53:03 +0000 (01:53 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 3 Feb 2015 01:53:03 +0000 (01:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227934 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Bitcode/Reader/BitReader.cpp
test/Bindings/llvm-c/invalid-bitcode.test

index 8641cd1487ca218a44eb17981f098c686ebf112e..868fbf010db37a857e73b42130555e7be7cd0953 100644 (file)
@@ -41,9 +41,11 @@ LLVMBool LLVMParseBitcodeInContext(LLVMContextRef ContextRef,
 
   ErrorOr<Module *> ModuleOrErr = parseBitcodeFile(
       Buf, Ctx, [&](const DiagnosticInfo &DI) { DI.print(DP); });
-  if (std::error_code EC = ModuleOrErr.getError()) {
-    if (OutMessage)
-      *OutMessage = strdup(EC.message().c_str());
+  if (ModuleOrErr.getError()) {
+    if (OutMessage) {
+      Stream.flush();
+      *OutMessage = strdup(Message.c_str());
+    }
     *OutModule = wrap((Module*)nullptr);
     return 1;
   }
index 997f7b5d5b72b142d4ea290c37b09aff0f03f836..6318a9bf13d93bf7af3f25815698aeb40e7835e3 100644 (file)
@@ -1,3 +1,3 @@
 ; RUN: not llvm-c-test --module-dump < %S/Inputs/invalid.ll.bc 2>&1 | FileCheck %s
 
-CHECK: Error parsing bitcode: Corrupted bitcode
+CHECK: Error parsing bitcode: Unknown attribute kind (48)