summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/Config.h2
-rw-r--r--lld/ELF/Driver.cpp13
2 files changed, 7 insertions, 8 deletions
diff --git a/lld/ELF/Config.h b/lld/ELF/Config.h
index b6d1d4caa75..fd7dbc2239b 100644
--- a/lld/ELF/Config.h
+++ b/lld/ELF/Config.h
@@ -86,7 +86,7 @@ struct Configuration {
bool Threads;
bool Trace;
bool Verbose;
- bool VersionScript;
+ bool VersionScript = false;
bool WarnCommon;
bool ZExecStack;
bool ZNodelete;
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index a88d8041d93..5d638a8c685 100644
--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -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) {
OpenPOWER on IntegriCloud