Identify thin archives as archives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242921 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2015-07-22 18:29:39 +00:00
parent 1a737f5714
commit bd58d4eb97
2 changed files with 11 additions and 1 deletions

View File

@ -939,7 +939,8 @@ file_magic identify_magic(StringRef Magic) {
break;
case '!':
if (Magic.size() >= 8)
if (memcmp(Magic.data(),"!<arch>\n",8) == 0)
if (memcmp(Magic.data(), "!<arch>\n", 8) == 0 ||
memcmp(Magic.data(), "!<thin>\n", 8) == 0)
return file_magic::archive;
break;

View File

@ -58,3 +58,12 @@ GNU AR is able to parse the unaligned member and warns about the member with
the unknown format. We should probably simply warn on both. For now just check
that we don't produce an error.
RUN: llvm-nm %p/Inputs/corrupt-archive.a
RUN: llvm-nm %p/Inputs/thin.a | FileCheck %s -check-prefix THIN
THIN: IsNAN.o:
THIN: 00000014 T _ZN4llvm5IsNANEd
THIN: 00000000 T _ZN4llvm5IsNANEf
THIN: U __isnan
THIN: U __isnanf