diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2019-08-15 22:52:40 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2019-08-15 22:52:40 +0000 |
commit | fb078366c749168c86a97df8423eb0b8f2c948b2 (patch) | |
tree | a1402a54686f1b73e81b7548effd9221a7061b04 /gcc/fortran/parse.c | |
parent | 7148dede8a84e17cc0b00190d76fabbc1a717654 (diff) | |
download | gcc-fb078366c749168c86a97df8423eb0b8f2c948b2.zip gcc-fb078366c749168c86a97df8423eb0b8f2c948b2.tar.gz gcc-fb078366c749168c86a97df8423eb0b8f2c948b2.tar.bz2 |
re PR fortran/91443 (-Wargument-mismatch does not catch mismatch for global procedure)
2019-08-15 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/91443
* frontend-passes.c (check_externals_expr): New function.
(check_externals_code): New function.
(gfc_check_externals): New function.
* gfortran.h (debug): Add prototypes for gfc_symbol * and
gfc_expr *.
(gfc_check_externals): Add prototype.
* interface.c (compare_actual_formal): Do not complain about
alternate returns if the formal argument is optional.
(gfc_procedure_use): Handle cases when an error has been issued
previously. Break long line.
* parse.c (gfc_parse_file): Call gfc_check_externals for all
external procedures.
* resolve.c (resolve_global_procedure): Remove checking of
argument list.
2019-08-15 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/91443
* gfortran.dg/argument_checking_19.f90: New test.
* gfortran.dg/altreturn_10.f90: Change dg-warning to dg-error.
* gfortran.dg/dec_union_11.f90: Add -std=legacy.
* gfortran.dg/hollerith8.f90: Likewise. Remove warning for
Hollerith constant.
* gfortran.dg/integer_exponentiation_2.f90: New subroutine gee_i8;
use it to avoid type mismatches.
* gfortran.dg/pr41011.f: Add -std=legacy.
* gfortran.dg/whole_file_1.f90: Change warnings to errors.
* gfortran.dg/whole_file_2.f90: Likewise.
From-SVN: r274551
Diffstat (limited to 'gcc/fortran/parse.c')
-rw-r--r-- | gcc/fortran/parse.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index 66d84b4..31466d2 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -6319,6 +6319,12 @@ done: /* Do the resolution. */ resolve_all_program_units (gfc_global_ns_list); + + /* Fixup for external procedures. */ + for (gfc_current_ns = gfc_global_ns_list; gfc_current_ns; + gfc_current_ns = gfc_current_ns->sibling) + gfc_check_externals (gfc_current_ns); + /* Do the parse tree dump. */ gfc_current_ns = flag_dump_fortran_original ? gfc_global_ns_list : NULL; |