Fortran : ICE in resolve_fl_procedure PR95708
Now issues an error "Intrinsic procedure 'num_images' not allowed in PROCEDURE" instead of an ICE. 2020-06-22 Steven G. Kargl <kargl@gcc.gnu.org> gcc/fortran/ PR fortran/95708 * intrinsic.c (add_functions): Replace CLASS_INQUIRY with CLASS_TRANSFORMATIONAL for intrinsic num_images. (make_generic): Replace ACTUAL_NO with ACTUAL_YES for intrinsic team_number. * resolve.c (resolve_fl_procedure): Check pointer ts.u.derived exists before using it. 2020-06-22 Mark Eggleston <markeggleston@gcc.gnu.org> gcc/testsuite/ PR fortran/95708 * gfortran.dg/pr95708.f90: New test.
This commit is contained in:
parent
9302421e71
commit
647340c92a
@ -2733,8 +2733,8 @@ add_functions (void)
|
||||
|
||||
make_generic ("null", GFC_ISYM_NULL, GFC_STD_F95);
|
||||
|
||||
add_sym_2 ("num_images", GFC_ISYM_NUM_IMAGES, CLASS_INQUIRY, ACTUAL_NO,
|
||||
BT_INTEGER, di, GFC_STD_F2008,
|
||||
add_sym_2 ("num_images", GFC_ISYM_NUM_IMAGES, CLASS_TRANSFORMATIONAL,
|
||||
ACTUAL_NO, BT_INTEGER, di, GFC_STD_F2008,
|
||||
gfc_check_num_images, gfc_simplify_num_images, NULL,
|
||||
dist, BT_INTEGER, di, OPTIONAL,
|
||||
failed, BT_LOGICAL, dl, OPTIONAL);
|
||||
@ -3174,7 +3174,7 @@ add_functions (void)
|
||||
make_generic ("tanh", GFC_ISYM_TANH, GFC_STD_F77);
|
||||
|
||||
add_sym_1 ("team_number", GFC_ISYM_TEAM_NUMBER, CLASS_TRANSFORMATIONAL,
|
||||
ACTUAL_YES, BT_INTEGER, di, GFC_STD_F2018,
|
||||
ACTUAL_NO, BT_INTEGER, di, GFC_STD_F2018,
|
||||
gfc_check_team_number, NULL, gfc_resolve_team_number,
|
||||
team, BT_DERIVED, di, OPTIONAL);
|
||||
|
||||
|
@ -12999,6 +12999,7 @@ resolve_fl_procedure (gfc_symbol *sym, int mp_flag)
|
||||
{
|
||||
if (arg->sym
|
||||
&& arg->sym->ts.type == BT_DERIVED
|
||||
&& arg->sym->ts.u.derived
|
||||
&& !arg->sym->ts.u.derived->attr.use_assoc
|
||||
&& !gfc_check_symbol_access (arg->sym->ts.u.derived)
|
||||
&& !gfc_notify_std (GFC_STD_F2003, "%qs is of a PRIVATE type "
|
||||
|
6
gcc/testsuite/gfortran.dg/pr95708.f90
Normal file
6
gcc/testsuite/gfortran.dg/pr95708.f90
Normal file
@ -0,0 +1,6 @@
|
||||
! { dg-do compile }
|
||||
!
|
||||
|
||||
program test
|
||||
procedure(team_num) :: g ! { dg-error "must be explicit" }
|
||||
end program
|
Loading…
Reference in New Issue
Block a user