[clang] 577827c - [flang][driver] Make --version and -version consistent with clang
Emil Kieri via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 28 14:01:33 PDT 2022
Author: Emil Kieri
Date: 2022-03-28T22:53:17+02:00
New Revision: 577827cbbf1033612d6ce15169f33ee5709abbfc
URL: https://github.com/llvm/llvm-project/commit/577827cbbf1033612d6ce15169f33ee5709abbfc
DIFF: https://github.com/llvm/llvm-project/commit/577827cbbf1033612d6ce15169f33ee5709abbfc.diff
LOG: [flang][driver] Make --version and -version consistent with clang
This patch makes -version valid, and --version invalid, for
flang-new -fc1. The invocation
flang-new --version
remains valid. This behaviour is consistent with clang
(and with clang -cc1 and clang -cc1as).
Previously, flang-new -fc1 accepted --version (as per Options.td), but
the frontend driver acutally checks for -version. As a result,
flang-new -fc1 --version
triggered no action, emitted no message, and stalled waiting for
standard input.
Fixes #51438
Reviewed By: PeteSteinfeld, awarzynski
Differential Revision: https://reviews.llvm.org/D122542
Added:
Modified:
clang/include/clang/Driver/Options.td
flang/test/Driver/driver-help.f90
flang/test/Driver/driver-version.f90
Removed:
################################################################################
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index ac2f479f159eb..8c488f254b1ec 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -4205,7 +4205,7 @@ def _serialize_diags : Separate<["-", "--"], "serialize-diagnostics">, Flags<[No
HelpText<"Serialize compiler diagnostics to a file">;
// We give --version
diff erent semantics from -version.
def _version : Flag<["--"], "version">,
- Flags<[CoreOption, FC1Option, FlangOption]>,
+ Flags<[CoreOption, FlangOption]>,
HelpText<"Print version information">;
def _signed_char : Flag<["--"], "signed-char">, Alias<fsigned_char>;
def _std : Separate<["--"], "std">, Alias<std_EQ>;
@@ -5749,11 +5749,16 @@ def aligned_alloc_unavailable : Flag<["-"], "faligned-alloc-unavailable">,
// Language Options
//===----------------------------------------------------------------------===//
-let Flags = [CC1Option, CC1AsOption, NoDriverOption] in {
+let Flags = [CC1Option, CC1AsOption, FC1Option, NoDriverOption] in {
def version : Flag<["-"], "version">,
HelpText<"Print the compiler version">,
MarshallingInfoFlag<FrontendOpts<"ShowVersion">>;
+
+} // let Flags = [CC1Option, CC1AsOption, FC1Option, NoDriverOption]
+
+let Flags = [CC1Option, CC1AsOption, NoDriverOption] in {
+
def main_file_name : Separate<["-"], "main-file-name">,
HelpText<"Main file name to use for debug info and source if missing">,
MarshallingInfoString<CodeGenOpts<"MainFileName">>;
diff --git a/flang/test/Driver/driver-help.f90 b/flang/test/Driver/driver-help.f90
index 16cc6c428082b..e020fa3801fd9 100644
--- a/flang/test/Driver/driver-help.f90
+++ b/flang/test/Driver/driver-help.f90
@@ -135,7 +135,7 @@
! HELP-FC1-NEXT: -test-io Run the InputOuputTest action. Use for development and testing only.
! HELP-FC1-NEXT: -triple <value> Specify target triple (e.g. i686-apple-darwin9)
! HELP-FC1-NEXT: -U <macro> Undefine macro <macro>
-! HELP-FC1-NEXT: --version Print version information
+! HELP-FC1-NEXT: -version Print the compiler version
! HELP-FC1-NEXT: -W<warning> Enable the specified warning
!---------------
diff --git a/flang/test/Driver/driver-version.f90 b/flang/test/Driver/driver-version.f90
index c3569be12a1a0..e38a1e58b60bd 100644
--- a/flang/test/Driver/driver-version.f90
+++ b/flang/test/Driver/driver-version.f90
@@ -2,15 +2,21 @@
!-----------
! RUN LINES
!-----------
-! RUN: %flang --version 2>&1 | FileCheck %s
+! RUN: %flang --version 2>&1 | FileCheck %s --check-prefix=VERSION
! RUN: not %flang --versions 2>&1 | FileCheck %s --check-prefix=ERROR
+! RUN: %flang_fc1 -version 2>&1 | FileCheck %s --check-prefix=VERSION-FC1
+! RUN: not %flang_fc1 --version 2>&1 | FileCheck %s --check-prefix=ERROR-FC1
!-----------------------
! EXPECTED OUTPUT
!-----------------------
-! CHECK: flang-new version
-! CHECK-NEXT: Target:
-! CHECK-NEXT: Thread model:
-! CHECK-NEXT: InstalledDir:
+! VERSION: flang-new version
+! VERSION-NEXT: Target:
+! VERSION-NEXT: Thread model:
+! VERSION-NEXT: InstalledDir:
! ERROR: flang-new: error: unsupported option '--versions'; did you mean '--version'?
+
+! VERSION-FC1: LLVM version
+
+! ERROR-FC1: error: unknown argument '--version'; did you mean '-version'?
More information about the cfe-commits
mailing list