summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-07-08 22:27:54 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-07-08 22:27:54 +0000
commit4104fe8ae92861d77b40adc78635915fbf6a1470 (patch)
treee24d8659320d601a4af19355e8f39c2253da91db
parent1eb778fc2b08103bd60c1561654e06e8087d4c46 (diff)
downloadbcm5719-llvm-4104fe8ae92861d77b40adc78635915fbf6a1470.tar.gz
bcm5719-llvm-4104fe8ae92861d77b40adc78635915fbf6a1470.zip
Don't reject an archive with just a symbol table.
It is pretty unambiguous how to interpret it and gnu ar accepts it too. llvm-svn: 241750
-rw-r--r--llvm/lib/Object/Archive.cpp2
-rw-r--r--llvm/test/Object/Inputs/symtab-only.abin0 -> 72 bytes
-rw-r--r--llvm/test/Object/archive-toc.test4
3 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp
index d03c328ae3b..b9d949b4428 100644
--- a/llvm/lib/Object/Archive.cpp
+++ b/llvm/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/llvm/test/Object/Inputs/symtab-only.a b/llvm/test/Object/Inputs/symtab-only.a
new file mode 100644
index 00000000000..611236bf3a1
--- /dev/null
+++ b/llvm/test/Object/Inputs/symtab-only.a
Binary files differ
diff --git a/llvm/test/Object/archive-toc.test b/llvm/test/Object/archive-toc.test
index 79a6e0e0ba8..93eb49ab784 100644
--- a/llvm/test/Object/archive-toc.test
+++ b/llvm/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: {{.}}
OpenPOWER on IntegriCloud