OSDN Git Service

Ignore MachO symbol flags in the upper nibble of n_desc.
authorJim Grosbach <grosbach@apple.com>
Tue, 1 Nov 2011 18:10:23 +0000 (18:10 +0000)
committerJim Grosbach <grosbach@apple.com>
Tue, 1 Nov 2011 18:10:23 +0000 (18:10 +0000)
They don't impact the MCJIT rtdyld, so just mask them off for now.

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

lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp

index 623e9b2..f5a68c8 100644 (file)
@@ -176,7 +176,8 @@ loadSegment32(const MachOObject *Obj,
         continue;
       // Flags == 0x8 marks a thumb function for ARM, which is fine as it
       // doesn't require any special handling here.
-      if (STE->Flags != 0x0 && STE->Flags != 0x8)
+      // Flags in the upper nibble we don't care about.
+      if ((STE->Flags & 0xf) != 0x0 && STE->Flags != 0x8)
         continue;
 
       // Remember the symbol.
@@ -313,7 +314,8 @@ loadSegment64(const MachOObject *Obj,
       // FIXME: Check the symbol type and flags.
       if (STE->Type != 0xF)  // external, defined in this section.
         continue;
-      if (STE->Flags != 0x0)
+      // Flags in the upper nibble we don't care about.
+      if ((STE->Flags & 0xf) != 0x0)
         continue;
 
       // Remember the symbol.