mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2026-07-21 03:05:30 -04:00
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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user