diff --git a/lib/Object/Archive.cpp b/lib/Object/Archive.cpp index d03c328ae3b..b9d949b4428 100644 --- a/lib/Object/Archive.cpp +++ b/lib/Object/Archive.cpp @@ -288,7 +288,7 @@ Archive::Archive(MemoryBufferRef Source, std::error_code &ec) ++i; if (i == e) { - ec = object_error::parse_failed; + ec = std::error_code(); return; } Name = i->getRawName(); diff --git a/test/Object/Inputs/symtab-only.a b/test/Object/Inputs/symtab-only.a new file mode 100644 index 00000000000..611236bf3a1 Binary files /dev/null and b/test/Object/Inputs/symtab-only.a differ diff --git a/test/Object/archive-toc.test b/test/Object/archive-toc.test index 79a6e0e0ba8..93eb49ab784 100644 --- a/test/Object/archive-toc.test +++ b/test/Object/archive-toc.test @@ -34,3 +34,7 @@ THIN: rw-r--r-- 1000/1000 8 2014-12-16 00:56:27.000000000 evenlen THIN-NEXT: rw-r--r-- 1000/1000 7 2014-12-16 00:56:27.000000000 oddlen THIN-NEXT: rwxr-xr-x 1000/1000 1465 2014-12-16 00:56:27.000000000 very_long_bytecode_file_name.bc THIN-NEXT: rw-r--r-- 1000/1000 2280 2014-12-16 00:56:27.000000000 IsNAN.o + +Test reading an archive with just a symbol table. We use to reject them. +RUN: llvm-ar tv %p/Inputs/symtab-only.a | FileCheck --allow-empty --check-prefix=EMPTY %s +EMPTY-NOT: {{.}}