From 265e8e8252a6f4bd98bf807718d3fed6748f1e3f Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Wed, 13 Feb 2019 18:48:39 +0000 Subject: [PATCH] Show "Unknown -z option" error message even if --version or --help are given. Previously, we validated -z options after we process --version or --help flags. So, if one of these flags is given, we wouldn't show an "unknown -z option" error. This patch fixes that behavior. Differential Revision: https://reviews.llvm.org/D55446 llvm-svn: 353967 --- lld/ELF/Driver.cpp | 2 +- lld/test/ELF/driver.test | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index b6794fc529cb..b44915a3eb66 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -370,6 +370,7 @@ void LinkerDriver::main(ArrayRef ArgsArr) { // Interpret this flag early because error() depends on them. errorHandler().ErrorLimit = args::getInteger(Args, OPT_error_limit, 20); + checkZOptions(Args); // Handle -help if (Args.hasArg(OPT_help)) { @@ -410,7 +411,6 @@ void LinkerDriver::main(ArrayRef ArgsArr) { } readConfigs(Args); - checkZOptions(Args); // The behavior of -v or --version is a bit strange, but this is // needed for compatibility with GNU linkers. diff --git a/lld/test/ELF/driver.test b/lld/test/ELF/driver.test index 585800a3b0b5..cc3e7898f09b 100644 --- a/lld/test/ELF/driver.test +++ b/lld/test/ELF/driver.test @@ -60,6 +60,7 @@ # ERR9: cannot open output file utput=/no/such/file # RUN: not ld.lld %t -z foo 2>&1 | FileCheck -check-prefix=ERR10 %s +# RUN: not ld.lld %t -z foo --version 2>&1 | FileCheck -check-prefix=ERR10 %s # ERR10: unknown -z value: foo ## Check we report "unknown -z value" error even with -v.