diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-12-18 23:46:42 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-12-18 23:46:42 +0000 |
commit | 2339ffed97f6644294c173107144d2f15ac68987 (patch) | |
tree | b42525d16896bbe1c03e353a7cc68f44027e0b61 /llvm/lib/Bitcode/Reader/BitReader.cpp | |
parent | e6fa51c9416b3cb45af9c31992bb5796336d2906 (diff) | |
download | bcm5719-llvm-2339ffed97f6644294c173107144d2f15ac68987.tar.gz bcm5719-llvm-2339ffed97f6644294c173107144d2f15ac68987.zip |
Deprecate a few C APIs.
This deprecates:
* LLVMParseBitcode
* LLVMParseBitcodeInContext
* LLVMGetBitcodeModuleInContext
* LLVMGetBitcodeModule
They are replaced with the functions with a 2 suffix which do not record
a diagnostic.
llvm-svn: 256065
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitReader.cpp')
-rw-r--r-- | llvm/lib/Bitcode/Reader/BitReader.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitReader.cpp b/llvm/lib/Bitcode/Reader/BitReader.cpp index 883a5bcdd07..385c18a4000 100644 --- a/llvm/lib/Bitcode/Reader/BitReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitReader.cpp @@ -29,6 +29,12 @@ LLVMBool LLVMParseBitcode(LLVMMemoryBufferRef MemBuf, LLVMModuleRef *OutModule, OutMessage); } +LLVMBool LLVMParseBitcode2(LLVMMemoryBufferRef MemBuf, + LLVMModuleRef *OutModule) { + return LLVMParseBitcodeInContext2(wrap(&getGlobalContext()), MemBuf, + OutModule); +} + static void diagnosticHandler(const DiagnosticInfo &DI, void *C) { auto *Message = reinterpret_cast<std::string *>(C); raw_string_ostream Stream(*Message); @@ -64,6 +70,22 @@ LLVMBool LLVMParseBitcodeInContext(LLVMContextRef ContextRef, return 0; } +LLVMBool LLVMParseBitcodeInContext2(LLVMContextRef ContextRef, + LLVMMemoryBufferRef MemBuf, + LLVMModuleRef *OutModule) { + MemoryBufferRef Buf = unwrap(MemBuf)->getMemBufferRef(); + LLVMContext &Ctx = *unwrap(ContextRef); + + ErrorOr<std::unique_ptr<Module>> ModuleOrErr = parseBitcodeFile(Buf, Ctx); + if (ModuleOrErr.getError()) { + *OutModule = wrap((Module *)nullptr); + return 1; + } + + *OutModule = wrap(ModuleOrErr.get().release()); + return 0; +} + /* Reads a module from the specified path, returning via the OutModule parameter a module provider which performs lazy deserialization. Returns 0 on success. Optionally returns a human-readable error message via OutMessage. */ @@ -96,8 +118,32 @@ LLVMBool LLVMGetBitcodeModuleInContext(LLVMContextRef ContextRef, return 0; } +LLVMBool LLVMGetBitcodeModuleInContext2(LLVMContextRef ContextRef, + LLVMMemoryBufferRef MemBuf, + LLVMModuleRef *OutM) { + LLVMContext &Ctx = *unwrap(ContextRef); + std::unique_ptr<MemoryBuffer> Owner(unwrap(MemBuf)); + + ErrorOr<std::unique_ptr<Module>> ModuleOrErr = + getLazyBitcodeModule(std::move(Owner), Ctx); + Owner.release(); + + if (ModuleOrErr.getError()) { + *OutM = wrap((Module *)nullptr); + return 1; + } + + *OutM = wrap(ModuleOrErr.get().release()); + return 0; +} + LLVMBool LLVMGetBitcodeModule(LLVMMemoryBufferRef MemBuf, LLVMModuleRef *OutM, char **OutMessage) { return LLVMGetBitcodeModuleInContext(LLVMGetGlobalContext(), MemBuf, OutM, OutMessage); } + +LLVMBool LLVMGetBitcodeModule2(LLVMMemoryBufferRef MemBuf, + LLVMModuleRef *OutM) { + return LLVMGetBitcodeModuleInContext2(LLVMGetGlobalContext(), MemBuf, OutM); +} |