Преглед изворни кода

Move code to a helper function. NFC.

Part of a patch by Jake Ehrlich!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314012 91177308-0d34-0410-b5e6-96231b3b80d8
Rafael Espindola пре 8 година
родитељ
комит
0cbbfe2ecf
1 измењених фајлова са 13 додато и 7 уклоњено
  1. 13 7
      lib/Object/ArchiveWriter.cpp

+ 13 - 7
lib/Object/ArchiveWriter.cpp

@@ -277,6 +277,18 @@ static sys::TimePoint<std::chrono::seconds> now(bool Deterministic) {
   return sys::TimePoint<seconds>();
 }
 
+static bool isArchiveSymbol(const object::BasicSymbolRef &S) {
+  uint32_t Symflags = S.getFlags();
+  if (Symflags & object::SymbolRef::SF_FormatSpecific)
+    return false;
+  if (!(Symflags & object::SymbolRef::SF_Global))
+    return false;
+  if (Symflags & object::SymbolRef::SF_Undefined &&
+      !(Symflags & object::SymbolRef::SF_Indirect))
+    return false;
+  return true;
+}
+
 // Returns the offset of the first reference to a member offset.
 static Expected<unsigned>
 writeSymbolTable(raw_fd_ostream &Out, object::Archive::Kind Kind,
@@ -310,13 +322,7 @@ writeSymbolTable(raw_fd_ostream &Out, object::Archive::Kind Kind,
     }
 
     for (const object::BasicSymbolRef &S : Obj.symbols()) {
-      uint32_t Symflags = S.getFlags();
-      if (Symflags & object::SymbolRef::SF_FormatSpecific)
-        continue;
-      if (!(Symflags & object::SymbolRef::SF_Global))
-        continue;
-      if (Symflags & object::SymbolRef::SF_Undefined &&
-          !(Symflags & object::SymbolRef::SF_Indirect))
+      if (!isArchiveSymbol(S))
         continue;
 
       unsigned NameOffset = NameOS.tell();