mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-18 10:24:45 +00:00
llvm-ar: print an error when the requested member is not found.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242156 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -41,3 +41,7 @@
|
|||||||
; RUN: env TZ=GMT llvm-ar tv %t.a | FileCheck %s
|
; RUN: env TZ=GMT llvm-ar tv %t.a | FileCheck %s
|
||||||
|
|
||||||
CHECK: 1465 2004-11-19 03:01:31.000000000 very_long_bytecode_file_name.bc
|
CHECK: 1465 2004-11-19 03:01:31.000000000 very_long_bytecode_file_name.bc
|
||||||
|
|
||||||
|
|
||||||
|
RUN: not llvm-ar x %p/Inputs/GNU.a foo.o 2>&1 | FileCheck --check-prefix=NOTFOUND %s
|
||||||
|
NOTFOUND: foo.o was not found
|
||||||
|
@@ -391,14 +391,18 @@ static bool shouldCreateArchive(ArchiveOperation Op) {
|
|||||||
|
|
||||||
static void performReadOperation(ArchiveOperation Operation,
|
static void performReadOperation(ArchiveOperation Operation,
|
||||||
object::Archive *OldArchive) {
|
object::Archive *OldArchive) {
|
||||||
|
bool Filter = !Members.empty();
|
||||||
for (const object::Archive::Child &C : OldArchive->children()) {
|
for (const object::Archive::Child &C : OldArchive->children()) {
|
||||||
ErrorOr<StringRef> NameOrErr = C.getName();
|
ErrorOr<StringRef> NameOrErr = C.getName();
|
||||||
failIfError(NameOrErr.getError());
|
failIfError(NameOrErr.getError());
|
||||||
StringRef Name = NameOrErr.get();
|
StringRef Name = NameOrErr.get();
|
||||||
|
|
||||||
if (!Members.empty() &&
|
if (Filter) {
|
||||||
std::find(Members.begin(), Members.end(), Name) == Members.end())
|
auto I = std::find(Members.begin(), Members.end(), Name);
|
||||||
continue;
|
if (I == Members.end())
|
||||||
|
continue;
|
||||||
|
Members.erase(I);
|
||||||
|
}
|
||||||
|
|
||||||
switch (Operation) {
|
switch (Operation) {
|
||||||
default:
|
default:
|
||||||
@@ -414,6 +418,11 @@ static void performReadOperation(ArchiveOperation Operation,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (Members.empty())
|
||||||
|
return;
|
||||||
|
for (StringRef Name : Members)
|
||||||
|
errs() << Name << " was not found\n";
|
||||||
|
std::exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
Reference in New Issue
Block a user