BUGFIX: handle Fortran 2003 "use" syntax
@@ -1866,7 +1866,7 @@ rule FORTRAN_DEP_HACK%s
def get_fortran_deps(self, compiler: FortranCompiler, src: str, target) -> List[str]:
mod_files = []
- usere = re.compile(r"\s*use\s+(\w+)", re.IGNORECASE)
+ usere = re.compile(r"\s*use,?\s*(?:non_intrinsic)?\s*(?:::)?\s*(\w+)", re.IGNORECASE)
submodre = re.compile(r"\s*\bsubmodule\b\s+\((\w+:?\w+)\)\s+(\w+)\s*$", re.IGNORECASE)
dirname = self.get_target_private_dir(target)
tdeps = self.fortran_deps[target.get_basename()]
@@ -1875,6 +1875,8 @@ rule FORTRAN_DEP_HACK%s
usematch = usere.match(line)
if usematch is not None:
usename = usematch.group(1).lower()
+ if usename == 'intrinsic': # this keeps the regex simpler
+ continue
if usename not in tdeps:
# The module is not provided by any source file. This
# is due to:
