re PR fortran/82992 (ICE in create_int_parameter_array, at fortran/module.c:6586)
2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/82992 * module.c (gfc_match_use): When renaming a module entity, search current namespace for conflicting symbol. 2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/82992 * gfortran.dg/pr71649.f90: Adjust error messages. * gfortran.dg/use_15.f90: Ditto. * gfortran.dg/use_rename_8.f90: Ditto. From-SVN: r274608
This commit is contained in:
parent
716ac0fc6c
commit
b9a21efdea
6 changed files with 43 additions and 14 deletions
|
@ -1,3 +1,9 @@
|
|||
2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/82992
|
||||
* module.c (gfc_match_use): When renaming a module entity, search
|
||||
current namespace for conflicting symbol.
|
||||
|
||||
2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/78739
|
||||
|
|
|
@ -525,6 +525,8 @@ gfc_match_use (void)
|
|||
gfc_intrinsic_op op;
|
||||
match m;
|
||||
gfc_use_list *use_list;
|
||||
gfc_symtree *st;
|
||||
locus loc;
|
||||
|
||||
use_list = gfc_get_use_list ();
|
||||
|
||||
|
@ -632,6 +634,8 @@ gfc_match_use (void)
|
|||
case INTERFACE_USER_OP:
|
||||
case INTERFACE_GENERIC:
|
||||
case INTERFACE_DTIO:
|
||||
loc = gfc_current_locus;
|
||||
|
||||
m = gfc_match (" =>");
|
||||
|
||||
if (type == INTERFACE_USER_OP && m == MATCH_YES
|
||||
|
@ -642,6 +646,18 @@ gfc_match_use (void)
|
|||
if (type == INTERFACE_USER_OP)
|
||||
new_use->op = INTRINSIC_USER;
|
||||
|
||||
st = gfc_find_symtree (gfc_current_ns->sym_root, name);
|
||||
if (st)
|
||||
{
|
||||
if (m == MATCH_YES)
|
||||
gfc_error ("Symbol %qs at %L conflicts with the rename symbol "
|
||||
"at %L", name, &st->n.sym->declared_at, &loc);
|
||||
else
|
||||
gfc_error ("Symbol %qs at %L conflicts with the symbol "
|
||||
"at %L", name, &st->n.sym->declared_at, &loc);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (use_list->only_flag)
|
||||
{
|
||||
if (m != MATCH_YES)
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/82992
|
||||
* gfortran.dg/pr71649.f90: Adjust error messages.
|
||||
* gfortran.dg/use_15.f90: Ditto.
|
||||
* gfortran.dg/use_rename_8.f90: Ditto.
|
||||
|
||||
2019-08-17 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/78739
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
! { dg-do compile }
|
||||
! PR71649 Internal Compiler Error
|
||||
SUBROUTINE Compiler_Options ( Options, Version, WriteOpt )
|
||||
USE ISO_FORTRAN_ENV, ONLY : Compiler_Version, Compiler_Options ! { dg-error "already declared" }
|
||||
SUBROUTINE Compiler_Options ( Options, Version, WriteOpt ) ! { dg-error "\(1\)" }
|
||||
USE ISO_FORTRAN_ENV, ONLY : Compiler_Version, Compiler_Options ! { dg-error "conflicts with the" }
|
||||
IMPLICIT NONE
|
||||
CHARACTER (LEN=*), INTENT(OUT) :: Options
|
||||
CHARACTER (LEN=*), INTENT(OUT) :: Version
|
||||
LOGICAL, INTENT(IN), OPTIONAL :: WriteOpt
|
||||
Version = Compiler_Version()
|
||||
Options = Compiler_Options() ! { dg-error "Unexpected use of subroutine name" }
|
||||
Version = Compiler_Version() ! { dg-error "has no IMPLICIT type" }
|
||||
Options = Compiler_Options() ! { dg-error "Unexpected use of subroutine name" }
|
||||
RETURN
|
||||
END SUBROUTINE Compiler_Options
|
||||
|
||||
|
|
|
@ -28,8 +28,8 @@ subroutine my_sub2 (a)
|
|||
end subroutine
|
||||
|
||||
|
||||
subroutine my_sub3 (a)
|
||||
use test_mod2, my_sub3 => my_sub2 ! { dg-error "is also the name of the current program unit" }
|
||||
subroutine my_sub3 (a) ! { dg-error "\(1\)" }
|
||||
use test_mod2, my_sub3 => my_sub2 ! { dg-error "conflicts with the rename" }
|
||||
real a
|
||||
print *, a
|
||||
end subroutine
|
||||
|
|
|
@ -19,8 +19,8 @@ SUBROUTINE T
|
|||
USE MOO, ONLY: X => B
|
||||
END SUBROUTINE T
|
||||
|
||||
SUBROUTINE C
|
||||
USE MOO, ONLY: C ! { dg-error "is also the name of the current program unit" }
|
||||
SUBROUTINE C ! { dg-error "\(1\)" }
|
||||
USE MOO, ONLY: C ! { dg-error "conflicts with the" }
|
||||
END SUBROUTINE C
|
||||
|
||||
SUBROUTINE D
|
||||
|
@ -36,15 +36,15 @@ SUBROUTINE F
|
|||
USE MOO, ONLY: X => F
|
||||
END SUBROUTINE F
|
||||
|
||||
SUBROUTINE X
|
||||
USE MOO, ONLY: X => G ! { dg-error "is also the name of the current program unit" }
|
||||
SUBROUTINE X ! { dg-error "\(1\)" }
|
||||
USE MOO, ONLY: X => G ! { dg-error "conflicts with the rename" }
|
||||
END SUBROUTINE X
|
||||
|
||||
SUBROUTINE Y
|
||||
USE MOO, ONLY: Y => H ! { dg-error "is also the name of the current program unit" }
|
||||
SUBROUTINE Y ! { dg-error "\(1\)" }
|
||||
USE MOO, ONLY: Y => H ! { dg-error "conflicts with the rename" }
|
||||
END SUBROUTINE Y
|
||||
|
||||
SUBROUTINE Z
|
||||
USE MOO, ONLY: Z => I, Z => I ! { dg-error "is also the name of the current program unit" }
|
||||
SUBROUTINE Z ! { dg-error "\(1\)" }
|
||||
USE MOO, ONLY: Z => I, Z => I ! { dg-error "conflicts with the rename" }
|
||||
END SUBROUTINE Z
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue