mirror of
https://github.com/RPCS3/llvm.git
synced 2025-03-02 15:45:44 +00:00
Convert the last uses of ErrorOr in include/llvm/Object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315483 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e7c6ff09d7
commit
f45980e68e
@ -52,12 +52,12 @@ public:
|
||||
|
||||
/// \brief Finds and returns bitcode embedded in the given object file, or an
|
||||
/// error code if not found.
|
||||
static ErrorOr<MemoryBufferRef> findBitcodeInObject(const ObjectFile &Obj);
|
||||
static Expected<MemoryBufferRef> findBitcodeInObject(const ObjectFile &Obj);
|
||||
|
||||
/// \brief Finds and returns bitcode in the given memory buffer (which may
|
||||
/// be either a bitcode file or a native object file with embedded bitcode),
|
||||
/// or an error code if not found.
|
||||
static ErrorOr<MemoryBufferRef>
|
||||
static Expected<MemoryBufferRef>
|
||||
findBitcodeInMemBuffer(MemoryBufferRef Object);
|
||||
|
||||
static Expected<std::unique_ptr<IRObjectFile>> create(MemoryBufferRef Object,
|
||||
|
@ -60,7 +60,7 @@ LTOModule::~LTOModule() {}
|
||||
/// isBitcodeFile - Returns 'true' if the file (or memory contents) is LLVM
|
||||
/// bitcode.
|
||||
bool LTOModule::isBitcodeFile(const void *Mem, size_t Length) {
|
||||
ErrorOr<MemoryBufferRef> BCData = IRObjectFile::findBitcodeInMemBuffer(
|
||||
Expected<MemoryBufferRef> BCData = IRObjectFile::findBitcodeInMemBuffer(
|
||||
MemoryBufferRef(StringRef((const char *)Mem, Length), "<mem>"));
|
||||
return bool(BCData);
|
||||
}
|
||||
@ -71,7 +71,7 @@ bool LTOModule::isBitcodeFile(StringRef Path) {
|
||||
if (!BufferOrErr)
|
||||
return false;
|
||||
|
||||
ErrorOr<MemoryBufferRef> BCData = IRObjectFile::findBitcodeInMemBuffer(
|
||||
Expected<MemoryBufferRef> BCData = IRObjectFile::findBitcodeInMemBuffer(
|
||||
BufferOrErr.get()->getMemBufferRef());
|
||||
return bool(BCData);
|
||||
}
|
||||
@ -87,7 +87,7 @@ bool LTOModule::isThinLTO() {
|
||||
|
||||
bool LTOModule::isBitcodeForTarget(MemoryBuffer *Buffer,
|
||||
StringRef TriplePrefix) {
|
||||
ErrorOr<MemoryBufferRef> BCOrErr =
|
||||
Expected<MemoryBufferRef> BCOrErr =
|
||||
IRObjectFile::findBitcodeInMemBuffer(Buffer->getMemBufferRef());
|
||||
if (!BCOrErr)
|
||||
return false;
|
||||
@ -100,7 +100,7 @@ bool LTOModule::isBitcodeForTarget(MemoryBuffer *Buffer,
|
||||
}
|
||||
|
||||
std::string LTOModule::getProducerString(MemoryBuffer *Buffer) {
|
||||
ErrorOr<MemoryBufferRef> BCOrErr =
|
||||
Expected<MemoryBufferRef> BCOrErr =
|
||||
IRObjectFile::findBitcodeInMemBuffer(Buffer->getMemBufferRef());
|
||||
if (!BCOrErr)
|
||||
return "";
|
||||
@ -174,11 +174,11 @@ LTOModule::createInLocalContext(std::unique_ptr<LLVMContext> Context,
|
||||
static ErrorOr<std::unique_ptr<Module>>
|
||||
parseBitcodeFileImpl(MemoryBufferRef Buffer, LLVMContext &Context,
|
||||
bool ShouldBeLazy) {
|
||||
|
||||
// Find the buffer.
|
||||
ErrorOr<MemoryBufferRef> MBOrErr =
|
||||
Expected<MemoryBufferRef> MBOrErr =
|
||||
IRObjectFile::findBitcodeInMemBuffer(Buffer);
|
||||
if (std::error_code EC = MBOrErr.getError()) {
|
||||
if (Error E = MBOrErr.takeError()) {
|
||||
std::error_code EC = errorToErrorCode(std::move(E));
|
||||
Context.emitError(EC.message());
|
||||
return EC;
|
||||
}
|
||||
|
@ -82,20 +82,22 @@ StringRef IRObjectFile::getTargetTriple() const {
|
||||
return Mods[0]->getTargetTriple();
|
||||
}
|
||||
|
||||
ErrorOr<MemoryBufferRef> IRObjectFile::findBitcodeInObject(const ObjectFile &Obj) {
|
||||
Expected<MemoryBufferRef>
|
||||
IRObjectFile::findBitcodeInObject(const ObjectFile &Obj) {
|
||||
for (const SectionRef &Sec : Obj.sections()) {
|
||||
if (Sec.isBitcode()) {
|
||||
StringRef SecContents;
|
||||
if (std::error_code EC = Sec.getContents(SecContents))
|
||||
return EC;
|
||||
return errorCodeToError(EC);
|
||||
return MemoryBufferRef(SecContents, Obj.getFileName());
|
||||
}
|
||||
}
|
||||
|
||||
return object_error::bitcode_section_not_found;
|
||||
return errorCodeToError(object_error::bitcode_section_not_found);
|
||||
}
|
||||
|
||||
ErrorOr<MemoryBufferRef> IRObjectFile::findBitcodeInMemBuffer(MemoryBufferRef Object) {
|
||||
Expected<MemoryBufferRef>
|
||||
IRObjectFile::findBitcodeInMemBuffer(MemoryBufferRef Object) {
|
||||
file_magic Type = identify_magic(Object.getBuffer());
|
||||
switch (Type) {
|
||||
case file_magic::bitcode:
|
||||
@ -106,19 +108,19 @@ ErrorOr<MemoryBufferRef> IRObjectFile::findBitcodeInMemBuffer(MemoryBufferRef Ob
|
||||
Expected<std::unique_ptr<ObjectFile>> ObjFile =
|
||||
ObjectFile::createObjectFile(Object, Type);
|
||||
if (!ObjFile)
|
||||
return errorToErrorCode(ObjFile.takeError());
|
||||
return ObjFile.takeError();
|
||||
return findBitcodeInObject(*ObjFile->get());
|
||||
}
|
||||
default:
|
||||
return object_error::invalid_file_type;
|
||||
return errorCodeToError(object_error::invalid_file_type);
|
||||
}
|
||||
}
|
||||
|
||||
Expected<std::unique_ptr<IRObjectFile>>
|
||||
IRObjectFile::create(MemoryBufferRef Object, LLVMContext &Context) {
|
||||
ErrorOr<MemoryBufferRef> BCOrErr = findBitcodeInMemBuffer(Object);
|
||||
Expected<MemoryBufferRef> BCOrErr = findBitcodeInMemBuffer(Object);
|
||||
if (!BCOrErr)
|
||||
return errorCodeToError(BCOrErr.getError());
|
||||
return BCOrErr.takeError();
|
||||
|
||||
Expected<std::vector<BitcodeModule>> BMsOrErr =
|
||||
getBitcodeModuleList(*BCOrErr);
|
||||
@ -142,10 +144,10 @@ IRObjectFile::create(MemoryBufferRef Object, LLVMContext &Context) {
|
||||
|
||||
Expected<IRSymtabFile> object::readIRSymtab(MemoryBufferRef MBRef) {
|
||||
IRSymtabFile F;
|
||||
ErrorOr<MemoryBufferRef> BCOrErr =
|
||||
Expected<MemoryBufferRef> BCOrErr =
|
||||
IRObjectFile::findBitcodeInMemBuffer(MBRef);
|
||||
if (!BCOrErr)
|
||||
return errorCodeToError(BCOrErr.getError());
|
||||
return BCOrErr.takeError();
|
||||
|
||||
Expected<BitcodeFileContents> BFCOrErr = getBitcodeFileContents(*BCOrErr);
|
||||
if (!BFCOrErr)
|
||||
|
@ -80,10 +80,12 @@ SymbolicFile::createSymbolicFile(MemoryBufferRef Object, file_magic Type,
|
||||
if (!Obj || !Context)
|
||||
return std::move(Obj);
|
||||
|
||||
ErrorOr<MemoryBufferRef> BCData =
|
||||
Expected<MemoryBufferRef> BCData =
|
||||
IRObjectFile::findBitcodeInObject(*Obj->get());
|
||||
if (!BCData)
|
||||
if (!BCData) {
|
||||
consumeError(BCData.takeError());
|
||||
return std::move(Obj);
|
||||
}
|
||||
|
||||
return IRObjectFile::create(
|
||||
MemoryBufferRef(BCData->getBuffer(), Object.getBufferIdentifier()),
|
||||
|
Loading…
x
Reference in New Issue
Block a user