summaryrefslogtreecommitdiffstats
path: root/Tests/FortranModules/test_module_main.f90
diff options
context:
space:
mode:
authorVitaly Mogulian <vitaly.mogulian@gmail.com>2022-07-30 17:07:14 (GMT)
committerBrad King <brad.king@kitware.com>2022-08-09 13:11:30 (GMT)
commit219a9b1e14084d16284c909ea055b3329750c909 (patch)
tree648c9bad4b00b5cc2869220f26e74641970221a1 /Tests/FortranModules/test_module_main.f90
parenta7211d6a2fd3097f88af94633b584d8ff76a8bce (diff)
downloadCMake-219a9b1e14084d16284c909ea055b3329750c909.zip
CMake-219a9b1e14084d16284c909ea055b3329750c909.tar.gz
CMake-219a9b1e14084d16284c909ea055b3329750c909.tar.bz2
Fortran: Fix suprious dependencies with submodules
In commit 695f0d0d3a (cmFortranParser: Parse keywords as lexical tokens, 2016-09-05, v3.7.0-rc1~150^2) we created keyword-specific variants of the original `USE WORD other EOSTMT` production, such as `MODULE WORD other EOSTMT` and `INTERFACE WORD other EOSTMT`. The same pattern was used by more keyword-specific productions in commit b5ac8b8aa7 (Fortran: Add support for submodule syntax in dependency scanning, 2016-09-05, v3.7.0-rc1~73^2~1). The postfix part (`other`) of several keyword-specific productions is not needed to match Fortran syntax. See the Fortran 2018 standard, para.4.1.4/1 on p.28, para.14.2.1/2 on pp.293-294. The postfix is needed only for a case of operator 'use': use <module-name> [, only : <list-of-vars>] The unnecessary postfix matching from the keyword-specific productions such as module, submodule, and interface declarations can cause spurious module dependencies to be detected, so remove it. Extend the test suite with examples covering the previously-broken cases. Fixes: #18427
Diffstat (limited to 'Tests/FortranModules/test_module_main.f90')
-rw-r--r--Tests/FortranModules/test_module_main.f902
1 files changed, 1 insertions, 1 deletions
diff --git a/Tests/FortranModules/test_module_main.f90 b/Tests/FortranModules/test_module_main.f90
index 6ac97fa..958d0a2 100644
--- a/Tests/FortranModules/test_module_main.f90
+++ b/Tests/FortranModules/test_module_main.f90
@@ -1,4 +1,4 @@
PROGRAM MAINF90
- USE TEST_MODULE
+ USE TEST_MODULE, only : TEST_MODULE_FUNCTION
PRINT *,'Sum is',TEST_MODULE_FUNCTION(1., 2.)
END PROGRAM MAINF90