Do not call hasArg and getLastArg for the same option.
authorRui Ueyama <ruiu@google.com>
Thu, 28 Apr 2016 02:08:54 +0000 (02:08 +0000)
committerRui Ueyama <ruiu@google.com>
Thu, 28 Apr 2016 02:08:54 +0000 (02:08 +0000)
llvm-svn: 267839

lld/ELF/Config.h
lld/ELF/Driver.cpp

index b6d1d4c..fd7dbc2 100644 (file)
@@ -86,7 +86,7 @@ struct Configuration {
   bool Threads;
   bool Trace;
   bool Verbose;
-  bool VersionScript;
+  bool VersionScript = false;
   bool WarnCommon;
   bool ZExecStack;
   bool ZNodelete;
index a88d804..5d638a8 100644 (file)
@@ -394,19 +394,18 @@ void LinkerDriver::readConfigs(opt::InputArgList &Args) {
   for (auto *Arg : Args.filtered(OPT_undefined))
     Config->Undefined.push_back(Arg->getValue());
 
-  if (Args.hasArg(OPT_dynamic_list))
-    if (Optional<MemoryBufferRef> Buffer =
-            readFile(getString(Args, OPT_dynamic_list)))
+  if (auto *Arg = Args.getLastArg(OPT_dynamic_list))
+    if (Optional<MemoryBufferRef> Buffer = readFile(Arg->getValue()))
       parseDynamicList(*Buffer);
 
   for (auto *Arg : Args.filtered(OPT_export_dynamic_symbol))
     Config->DynamicList.push_back(Arg->getValue());
 
-  Config->VersionScript = Args.hasArg(OPT_version_script);
-  if (Config->VersionScript)
-    if (Optional<MemoryBufferRef> Buffer =
-            readFile(getString(Args, OPT_version_script)))
+  if (auto *Arg = Args.getLastArg(OPT_version_script)) {
+    Config->VersionScript = true;
+    if (Optional<MemoryBufferRef> Buffer = readFile(Arg->getValue()))
       parseVersionScript(*Buffer);
+  }
 }
 
 void LinkerDriver::createFiles(opt::InputArgList &Args) {