[lld] r296227 - Do not handle -strip in a special way. NFC.

Rui Ueyama via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 24 18:12:37 PST 2017


Author: ruiu
Date: Fri Feb 24 20:12:37 2017
New Revision: 296227

URL: http://llvm.org/viewvc/llvm-project?rev=296227&view=rev
Log:
Do not handle -strip in a special way. NFC.

Modified:
    lld/trunk/ELF/Config.h
    lld/trunk/ELF/Driver.cpp

Modified: lld/trunk/ELF/Config.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Config.h?rev=296227&r1=296226&r2=296227&view=diff
==============================================================================
--- lld/trunk/ELF/Config.h (original)
+++ lld/trunk/ELF/Config.h Fri Feb 24 20:12:37 2017
@@ -145,7 +145,7 @@ struct Configuration {
   bool ZWxneeded;
   DiscardPolicy Discard;
   SortSectionPolicy SortSection;
-  StripPolicy Strip = StripPolicy::None;
+  StripPolicy Strip;
   UnresolvedPolicy UnresolvedSymbols;
   Target2Policy Target2 = Target2Policy::GotRel;
   BuildIdKind BuildId = BuildIdKind::None;

Modified: lld/trunk/ELF/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=296227&r1=296226&r2=296227&view=diff
==============================================================================
--- lld/trunk/ELF/Driver.cpp (original)
+++ lld/trunk/ELF/Driver.cpp Fri Feb 24 20:12:37 2017
@@ -437,6 +437,7 @@ static bool isOutputFormatBinary(opt::In
 static DiscardPolicy getDiscardOption(opt::InputArgList &Args) {
   if (Args.hasArg(OPT_relocatable))
     return DiscardPolicy::None;
+
   auto *Arg =
       Args.getLastArg(OPT_discard_all, OPT_discard_locals, OPT_discard_none);
   if (!Arg)
@@ -456,12 +457,15 @@ static StringRef getDynamicLinkerOption(
 }
 
 static StripPolicy getStripOption(opt::InputArgList &Args) {
-  if (auto *Arg = Args.getLastArg(OPT_strip_all, OPT_strip_debug)) {
-    if (Arg->getOption().getID() == OPT_strip_all)
-      return StripPolicy::All;
-    return StripPolicy::Debug;
-  }
-  return StripPolicy::None;
+  if (Args.hasArg(OPT_relocatable))
+    return StripPolicy::None;
+
+  auto *Arg = Args.getLastArg(OPT_strip_all, OPT_strip_debug);
+  if (!Arg)
+    return StripPolicy::None;
+  if (Arg->getOption().getID() == OPT_strip_all)
+    return StripPolicy::All;
+  return StripPolicy::Debug;
 }
 
 static uint64_t parseSectionAddress(StringRef S, opt::Arg *Arg) {
@@ -575,6 +579,7 @@ void LinkerDriver::readConfigs(opt::Inpu
   Config->SingleRoRx = Args.hasArg(OPT_no_rosegment);
   Config->SoName = getString(Args, OPT_soname);
   Config->SortSection = getSortKind(Args);
+  Config->Strip = getStripOption(Args);
   Config->Sysroot = getString(Args, OPT_sysroot);
   Config->Target1Rel = getArg(Args, OPT_target1_rel, OPT_target1_abs, false);
   Config->Target2 = getTarget2Option(Args);
@@ -620,9 +625,6 @@ void LinkerDriver::readConfigs(opt::Inpu
   if (Config->Omagic)
     Config->ZRelro = false;
 
-  if (!Config->Relocatable)
-    Config->Strip = getStripOption(Args);
-
   std::tie(Config->SysvHash, Config->GnuHash) = getHashStyle(Args);
 
   // Parse --build-id or --build-id=<style>.




More information about the llvm-commits mailing list