[flang][driver] Make driver accept `-module-dir<value>`

`-module-dir` is Flang's equivalent for `-J` from GFortran (in fact,
`-J` is an alias for `-module-dir` in Flang). Currently, only
`-module-dir <value>` is accepted. However, `-J` (and other options for
specifying various paths) accepts `-J<value>` as well as `-J <value>`.
This patch makes sure that `-module-dir` behaves consistently with other
such flags.

Differential Revision: https://reviews.llvm.org/D125957
This commit is contained in:
Andrzej Warzynski 2022-05-19 09:31:03 +00:00
parent 44673278e0
commit f820625503
2 changed files with 11 additions and 4 deletions

View File

@ -4776,7 +4776,7 @@ def cpp : Flag<["-"], "cpp">, Group<f_Group>,
HelpText<"Enable predefined and command line preprocessor macros">; HelpText<"Enable predefined and command line preprocessor macros">;
def nocpp : Flag<["-"], "nocpp">, Group<f_Group>, def nocpp : Flag<["-"], "nocpp">, Group<f_Group>,
HelpText<"Disable predefined and command line preprocessor macros">; HelpText<"Disable predefined and command line preprocessor macros">;
def module_dir : Separate<["-"], "module-dir">, MetaVarName<"<dir>">, def module_dir : JoinedOrSeparate<["-"], "module-dir">, MetaVarName<"<dir>">,
HelpText<"Put MODULE files in <dir>">, HelpText<"Put MODULE files in <dir>">,
DocBrief<[{This option specifies where to put .mod files for compiled modules. DocBrief<[{This option specifies where to put .mod files for compiled modules.
It is also added to the list of directories to be searched by an USE statement. It is also added to the list of directories to be searched by an USE statement.

View File

@ -4,21 +4,28 @@
! We use `-fsyntax-only` as it stops after the semantic checks (the module file is generated when sema checks are run) ! We use `-fsyntax-only` as it stops after the semantic checks (the module file is generated when sema checks are run)
!-------------------------- !--------------------------
! -module-dir ! -module-dir <value>
!-------------------------- !--------------------------
! RUN: rm -rf %t && mkdir -p %t/dir-flang ! RUN: rm -rf %t && mkdir -p %t/dir-flang
! RUN: cd %t && %flang -fsyntax-only -module-dir %t/dir-flang %s ! RUN: cd %t && %flang -fsyntax-only -module-dir %t/dir-flang %s
! RUN: ls %t/dir-flang/testmodule.mod && not ls %t/testmodule.mod ! RUN: ls %t/dir-flang/testmodule.mod && not ls %t/testmodule.mod
!--------------------------
! -module-dir<value>
!--------------------------
! RUN: rm -rf %t && mkdir -p %t/dir-flang
! RUN: cd %t && %flang -fsyntax-only -module-dir%t/dir-flang %s
! RUN: ls %t/dir-flang/testmodule.mod && not ls %t/testmodule.mod
!--------------------------- !---------------------------
! -J <dir> (i.e. with space) ! -J <value>
!--------------------------- !---------------------------
! RUN: rm -rf %t && mkdir -p %t/dir-flang ! RUN: rm -rf %t && mkdir -p %t/dir-flang
! RUN: cd %t && %flang -fsyntax-only -J %t/dir-flang %s ! RUN: cd %t && %flang -fsyntax-only -J %t/dir-flang %s
! RUN: ls %t/dir-flang/testmodule.mod && not ls %t/testmodule.mod ! RUN: ls %t/dir-flang/testmodule.mod && not ls %t/testmodule.mod
!------------------------------ !------------------------------
! -J<dir> (i.e. without space) ! -J<value>
!------------------------------ !------------------------------
! RUN: rm -rf %t && mkdir -p %t/dir-flang ! RUN: rm -rf %t && mkdir -p %t/dir-flang
! RUN: cd %t && %flang -fsyntax-only -J%t/dir-flang %s ! RUN: cd %t && %flang -fsyntax-only -J%t/dir-flang %s