@@ -267,6 +267,13 @@ class ConditionalPrintErr {
267
267
bool C;
268
268
};
269
269
270
+ Expected<std::unique_ptr<MemoryBuffer>> getFile (const Twine &FileName) {
271
+ if (auto F = MemoryBuffer::getFile (FileName))
272
+ return std::move (*F);
273
+ else
274
+ return createFileError (FileName, F.getError ());
275
+ }
276
+
270
277
void reportLLVMJITLinkError (Error Err) {
271
278
handleAllErrors (
272
279
std::move (Err),
@@ -1094,8 +1101,7 @@ Session::Session(std::unique_ptr<ExecutorProcessControl> EPC, Error &Err)
1094
1101
for (auto &HarnessFile : TestHarnesses) {
1095
1102
HarnessFiles.insert (HarnessFile);
1096
1103
1097
- auto ObjBuffer =
1098
- ExitOnErr (errorOrToExpected (MemoryBuffer::getFile (HarnessFile)));
1104
+ auto ObjBuffer = ExitOnErr (getFile (HarnessFile));
1099
1105
1100
1106
auto ObjInterface =
1101
1107
ExitOnErr (getObjectFileInterface (ES, ObjBuffer->getMemBufferRef ()));
@@ -1246,8 +1252,7 @@ static Triple getFirstFileTriple() {
1246
1252
static Triple FirstTT = []() {
1247
1253
assert (!InputFiles.empty () && " InputFiles can not be empty" );
1248
1254
for (auto InputFile : InputFiles) {
1249
- auto ObjBuffer =
1250
- ExitOnErr (errorOrToExpected (MemoryBuffer::getFile (InputFile)));
1255
+ auto ObjBuffer = ExitOnErr (getFile (InputFile));
1251
1256
switch (identify_magic (ObjBuffer->getBuffer ())) {
1252
1257
case file_magic::elf_relocatable:
1253
1258
case file_magic::macho_object:
@@ -1456,7 +1461,7 @@ static Error addTestHarnesses(Session &S) {
1456
1461
LLVM_DEBUG (dbgs () << " Adding test harness objects...\n " );
1457
1462
for (auto HarnessFile : TestHarnesses) {
1458
1463
LLVM_DEBUG (dbgs () << " " << HarnessFile << " \n " );
1459
- auto ObjBuffer = errorOrToExpected ( MemoryBuffer:: getFile (HarnessFile) );
1464
+ auto ObjBuffer = getFile (HarnessFile);
1460
1465
if (!ObjBuffer)
1461
1466
return ObjBuffer.takeError ();
1462
1467
if (auto Err = S.ObjLayer .add (*S.MainJD , std::move (*ObjBuffer)))
@@ -1480,7 +1485,7 @@ static Error addObjects(Session &S,
1480
1485
auto &JD = *std::prev (IdxToJD.lower_bound (InputFileArgIdx))->second ;
1481
1486
LLVM_DEBUG (dbgs () << " " << InputFileArgIdx << " : \" " << InputFile
1482
1487
<< " \" to " << JD.getName () << " \n " ;);
1483
- auto ObjBuffer = errorOrToExpected ( MemoryBuffer:: getFile (InputFile) );
1488
+ auto ObjBuffer = getFile (InputFile);
1484
1489
if (!ObjBuffer)
1485
1490
return ObjBuffer.takeError ();
1486
1491
@@ -1892,8 +1897,7 @@ static Error runChecks(Session &S) {
1892
1897
1893
1898
std::string CheckLineStart = " # " + CheckName + " :" ;
1894
1899
for (auto &CheckFile : CheckFiles) {
1895
- auto CheckerFileBuf =
1896
- ExitOnErr (errorOrToExpected (MemoryBuffer::getFile (CheckFile)));
1900
+ auto CheckerFileBuf = ExitOnErr (getFile (CheckFile));
1897
1901
if (!Checker.checkAllRulesInBuffer (CheckLineStart, &*CheckerFileBuf))
1898
1902
ExitOnErr (make_error<StringError>(
1899
1903
" Some checks in " + CheckFile + " failed" , inconvertibleErrorCode ()));
0 commit comments