Fix identify_magic() with mach-o stub dylibs.
authorNick Kledzik <kledzik@apple.com>
Wed, 17 Sep 2014 00:53:44 +0000 (00:53 +0000)
committerNick Kledzik <kledzik@apple.com>
Wed, 17 Sep 2014 00:53:44 +0000 (00:53 +0000)
The wrong value was returned and the unittest did not cover the stub dylib case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217933 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Path.cpp
unittests/Support/Path.cpp

index 781c17c18793427188b8db888f1fde0b56c0f4e1..7e02f5fecc3a5ae19091557ff48c54eaa10e80ac 100644 (file)
@@ -999,7 +999,7 @@ file_magic identify_magic(StringRef Magic) {
         case 6: return file_magic::macho_dynamically_linked_shared_lib;
         case 7: return file_magic::macho_dynamic_linker;
         case 8: return file_magic::macho_bundle;
-        case 9: return file_magic::macho_dynamic_linker;
+        case 9: return file_magic::macho_dynamically_linked_shared_lib_stub;
         case 10: return file_magic::macho_dsym_companion;
       }
       break;
index a12e9b79211c7c94c458331bfafb7946f17df001..ae4c9eb207fe95cd6ed35d6a60ae1b48a9fe4bf1 100644 (file)
@@ -501,6 +501,8 @@ const char macho_dynamic_linker[] = "\xfe\xed\xfa\xce..........\x00\x07";
 const char macho_bundle[] = "\xfe\xed\xfa\xce..........\x00\x08";
 const char macho_dsym_companion[] = "\xfe\xed\xfa\xce..........\x00\x0a";
 const char windows_resource[] = "\x00\x00\x00\x00\x020\x00\x00\x00\xff";
+const char macho_dynamically_linked_shared_lib_stub[] =
+    "\xfe\xed\xfa\xce..........\x00\x09";
 
 TEST_F(FileSystemTest, Magic) {
   struct type {
@@ -526,6 +528,7 @@ TEST_F(FileSystemTest, Magic) {
     DEFINE(macho_dynamically_linked_shared_lib),
     DEFINE(macho_dynamic_linker),
     DEFINE(macho_bundle),
+    DEFINE(macho_dynamically_linked_shared_lib_stub),
     DEFINE(macho_dsym_companion),
     DEFINE(windows_resource)
 #undef DEFINE