re PR fortran/91390 (treatment of extra parameter in a subroutine call)
authorThomas Koenig <tkoenig@gcc.gnu.org>
Sat, 24 Aug 2019 21:12:45 +0000 (21:12 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Sat, 24 Aug 2019 21:12:45 +0000 (21:12 +0000)
commite68a35ae4a65d2b3f42b22e6920a7a29f5727b3f
treea8408061a41b4c771669bfe144ef8f5e658cf7f9
parentc6ca0e3e69e2e3681c81d5a5ddd2dcd6f41b7522
re PR fortran/91390 (treatment of extra parameter in a subroutine call)

2019-08-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/91390
PR fortran/91519
* frontend-passes.c (check_externals_procedure): New
function. If a procedure is not in the translation unit, create
an "interface" for it, including its formal arguments.
(check_externals_code): Use check_externals_procedure for common
code with check_externals_expr.
(check_externals_expr): Vice versa.
* gfortran.h (gfc_get_formal_from_actual-arglist): New prototype.
(gfc_compare_actual_formal): New prototype.
* interface.c (compare_actual_formal): Rename to
(gfc_compare_actual_formal): New function, make global.
(gfc_get_formal_from_actual_arglist): Make global, and move here from
* trans-types.c (get_formal_from_actual_arglist): Remove here.
(gfc_get_function_type): Use gfc_get_formal_from_actual_arglist.

2019-08-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/91390
PR fortran/91519
* gfortran.dg/bessel_3.f90: Add type mismatch errors.
* gfortran.dg/coarray_7.f90: Rename subroutines to avoid
additional errors.
* gfortran.dg/g77/20010519-1.f: Add -std=legacy. Remove
warnings for ASSIGN. Add warnings for type mismatch.
* gfortran.dg/goacc/acc_on_device-1.f95: Add -std=legacy.
Add catch-all warning.
* gfortran.dg/internal_pack_9.f90: Rename subroutine to
avoid type error.
* gfortran.dg/internal_pack_9.f90: Add -std=legacy. Add
warnings for type mismatch.
* gfortran.dg/pr39937.f: Add -std=legacy and type warnings. Move
here from
* gfortran.fortran-torture/compile/pr39937.f: Move to
gfortran.dg.

From-SVN: r274902
13 files changed:
gcc/fortran/ChangeLog
gcc/fortran/frontend-passes.c
gcc/fortran/gfortran.h
gcc/fortran/interface.c
gcc/fortran/trans-types.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/bessel_3.f90
gcc/testsuite/gfortran.dg/coarray_7.f90
gcc/testsuite/gfortran.dg/g77/20010519-1.f
gcc/testsuite/gfortran.dg/goacc/acc_on_device-1.f95
gcc/testsuite/gfortran.dg/internal_pack_9.f90
gcc/testsuite/gfortran.dg/pr24823.f
gcc/testsuite/gfortran.dg/pr39937.f [moved from gcc/testsuite/gfortran.fortran-torture/compile/pr39937.f with 89% similarity]