re PR fortran/36497 (USE association, cray pointers and error checking)
2018-06-03 Paul Thomas <pault@gcc.gnu.org> PR fortran/36497 * decl.c (variable_decl): Use gfc_add_type for cray pointees. 2018-06-03 Paul Thomas <pault@gcc.gnu.org> PR fortran/36497 * gfortran.dg/cray_pointer_12.f90: New test. From-SVN: r261127
This commit is contained in:
parent
12193bf1b0
commit
5b9a3332c2
@ -1,10 +1,15 @@
|
||||
2018-06-03 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/36497
|
||||
* decl.c (variable_decl): Use gfc_add_type for cray pointees.
|
||||
|
||||
2018-06-01 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/63570
|
||||
* check.c (gfc_check_random_init): New function. Check arguments of
|
||||
RANDOM_INIT.
|
||||
* gfortran.h (GFC_ISYM_RANDOM_INIT): New enum token.
|
||||
* intrinsic.c (add_subroutines): Add RANDOM_INIT to list of
|
||||
* intrinsic.c (add_subroutines): Add RANDOM_INIT to list of
|
||||
subroutines.
|
||||
(gfc_check_intrinsic_standard): Introduce Fortran 2018 check.
|
||||
* intrinsic.h: Add prototypes for gfc_check_random_init and
|
||||
|
@ -2431,7 +2431,7 @@ variable_decl (int elem)
|
||||
}
|
||||
|
||||
if (not_constant)
|
||||
{
|
||||
{
|
||||
gfc_error ("Explicit shaped array with nonconstant bounds at %C");
|
||||
m = MATCH_ERROR;
|
||||
goto cleanup;
|
||||
@ -2535,13 +2535,12 @@ variable_decl (int elem)
|
||||
gfc_find_symbol (name, gfc_current_ns, 1, &sym);
|
||||
if (sym != NULL && sym->attr.cray_pointee)
|
||||
{
|
||||
sym->ts.type = current_ts.type;
|
||||
sym->ts.kind = current_ts.kind;
|
||||
sym->ts.u.cl = cl;
|
||||
sym->ts.u.derived = current_ts.u.derived;
|
||||
sym->ts.is_c_interop = current_ts.is_c_interop;
|
||||
sym->ts.is_iso_c = current_ts.is_iso_c;
|
||||
m = MATCH_YES;
|
||||
if (!gfc_add_type (sym, ¤t_ts, &gfc_current_locus))
|
||||
{
|
||||
m = MATCH_ERROR;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* Check to see if we have an array specification. */
|
||||
if (cp_as != NULL)
|
||||
|
@ -1,3 +1,8 @@
|
||||
2018-06-03 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/36497
|
||||
* gfortran.dg/cray_pointer_12.f90: New test.
|
||||
|
||||
2018-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/85938
|
||||
@ -77,7 +82,7 @@
|
||||
* gfortran.dg/pr85975.f90: New test.
|
||||
|
||||
2018-06-01 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
|
||||
PR fortran/63570
|
||||
* gfortran.dg/random_init_1.f90: New test.
|
||||
* gfortran.dg/random_init_2.f90: New test.
|
||||
|
23
gcc/testsuite/gfortran.dg/cray_pointers_12.f90
Normal file
23
gcc/testsuite/gfortran.dg/cray_pointers_12.f90
Normal file
@ -0,0 +1,23 @@
|
||||
! { dg-do compile }
|
||||
! { dg-options "-fcray-pointer" }
|
||||
!
|
||||
! Test the fix for PR36497 in which there was no error for the second
|
||||
! declaration of 'x'.
|
||||
!
|
||||
! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
|
||||
!
|
||||
module test
|
||||
integer(8) ipt
|
||||
integer z(2), x
|
||||
pointer (ipt, x)
|
||||
end module
|
||||
|
||||
program bar
|
||||
use test ! { dg-error "conflicts with symbol" }
|
||||
integer x ! { dg-error "conflicts with symbol" }
|
||||
ipt = loc(z(1))
|
||||
x = 1
|
||||
ipt = loc(z(2))
|
||||
x = 3
|
||||
if (any (z .ne. [1,3])) stop 1
|
||||
end
|
Loading…
Reference in New Issue
Block a user