diff --git a/llvm/include/llvm/Object/Archive.h b/llvm/include/llvm/Object/Archive.h --- a/llvm/include/llvm/Object/Archive.h +++ b/llvm/include/llvm/Object/Archive.h @@ -359,7 +359,7 @@ // check if a symbol is in the archive Expected> findSym(StringRef name) const; - bool isEmpty() const; + virtual bool isEmpty() const; bool hasSymbolTable() const; StringRef getSymbolTable() const { return SymbolTable; } StringRef getStringTable() const { return StringTable; } @@ -412,6 +412,9 @@ BigArchive(MemoryBufferRef Source, Error &Err); uint64_t getFirstChildOffset() const override { return FirstChildOffset; } uint64_t getLastChildOffset() const { return LastChildOffset; } + bool isEmpty() const override { + return Data.getBufferSize() == sizeof(FixLenHdr); + }; }; } // end namespace object diff --git a/llvm/test/tools/llvm-ar/display-empty.test b/llvm/test/tools/llvm-ar/display-empty.test --- a/llvm/test/tools/llvm-ar/display-empty.test +++ b/llvm/test/tools/llvm-ar/display-empty.test @@ -3,7 +3,7 @@ # RUN: rm -rf %t && mkdir -p %t ## Display empty archive: -# RUN: llvm-ar cr --format=gnu %t/empty.a +# RUN: llvm-ar cr %t/empty.a # RUN: llvm-ar tv %t/empty.a 2>&1 | count 0 ## Display empty thin archive: diff --git a/llvm/test/tools/llvm-ar/full-path-option.test b/llvm/test/tools/llvm-ar/full-path-option.test --- a/llvm/test/tools/llvm-ar/full-path-option.test +++ b/llvm/test/tools/llvm-ar/full-path-option.test @@ -27,7 +27,7 @@ # Deleting will fail with P because the members exist as foo.txt, not a/foo.txt. RUN: rm -f del1.a -RUN: llvm-ar rcS --format=gnu del1.a foo.txt +RUN: llvm-ar rcS del1.a foo.txt RUN: llvm-ar dP del1.a a/foo.txt RUN: llvm-ar t del1.a a/foo.txt | FileCheck %s --check-prefix=DISPLAY-FOUND --match-full-lines RUN: llvm-ar d del1.a a/foo.txt diff --git a/llvm/test/tools/llvm-ar/quick-append.test b/llvm/test/tools/llvm-ar/quick-append.test --- a/llvm/test/tools/llvm-ar/quick-append.test +++ b/llvm/test/tools/llvm-ar/quick-append.test @@ -1,4 +1,3 @@ -# XFAIL: system-aix ## Test quick append # RUN: rm -rf %t && mkdir -p %t diff --git a/llvm/test/tools/llvm-lipo/create-archive-input.test b/llvm/test/tools/llvm-lipo/create-archive-input.test --- a/llvm/test/tools/llvm-lipo/create-archive-input.test +++ b/llvm/test/tools/llvm-lipo/create-archive-input.test @@ -4,7 +4,7 @@ # RUN: llvm-as %p/Inputs/armv7-ios.ll -o %t-ir-armv7.o # RUN: llvm-as %p/Inputs/x64-osx.ll -o %t-ir-x86_64.o -# RUN: llvm-ar cr --format=gnu %t.empty.a +# RUN: llvm-ar cr %t.empty.a # RUN: not llvm-lipo %t.empty.a -create -output /dev/null 2>&1 | FileCheck --check-prefix=EMPTY-ARCHIVE %s # RUN: llvm-ar cr %t.different_architectures.a %t-i386.o %t-x86_64.o diff --git a/llvm/test/tools/llvm-size/archive.test b/llvm/test/tools/llvm-size/archive.test --- a/llvm/test/tools/llvm-size/archive.test +++ b/llvm/test/tools/llvm-size/archive.test @@ -5,7 +5,7 @@ ## Case 1: Empty archive. No output expected. # RUN: rm -f %t1.a -# RUN: llvm-ar rc --format=gnu %t1.a +# RUN: llvm-ar rc %t1.a # RUN: llvm-size -B %t1.a | count 0 # RUN: llvm-size -A %t1.a | count 0