This matches the gnu ar behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242162
91177308-0d34-0410-b5e6-
96231b3b80d8
};
Kind kind() const { return (Kind)Format; }
+ bool isThin() const { return IsThin; }
child_iterator child_begin(bool SkipInternal = true) const;
child_iterator child_end() const;
RUN: not llvm-ar x %p/Inputs/GNU.a foo.o 2>&1 | FileCheck --check-prefix=NOTFOUND %s
NOTFOUND: foo.o was not found
+
+RUN: not llvm-ar x %p/Inputs/thin.a foo.o 2>&1 | FileCheck %s --check-prefix=THINEXTRACT
+THINEXTRACT: extracting from a thin archive is not supported
static void performReadOperation(ArchiveOperation Operation,
object::Archive *OldArchive) {
+ if (Operation == Extract && OldArchive->isThin()) {
+ errs() << "extracting from a thin archive is not supported\n";
+ std::exit(1);
+ }
+
bool Filter = !Members.empty();
for (const object::Archive::Child &C : OldArchive->children()) {
ErrorOr<StringRef> NameOrErr = C.getName();