Identify thin archives as archives.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 22 Jul 2015 18:29:39 +0000 (18:29 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 22 Jul 2015 18:29:39 +0000 (18:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242921 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Path.cpp
test/Object/nm-archive.test

index 75fd292e5b161dde3fb5fd6f18a44d866edbca07..985cdbf74325e83b17c4161774e8bee41acb303a 100644 (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;
 
index 4cd58d33cf28b53151ed39d970054dc9b53cbfea..8f8cdbe9f08cf05a12e0782690695fa3779b1674 100644 (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