Commit 2345fe52 by Steven G. Kargl

re PR fortran/47054 (Compilation error when cray pointers are declared in both…

re PR fortran/47054 (Compilation error when cray pointers are declared in both host and internal subroutines)

2019-10-05  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/47045
	* decl.c (variable_decl): Do not search parent namespace for symbol.

2019-10-05  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/47045
	* gfortran.dg/pr47054_1.f90: New test
	* gfortran.dg/pr47054_2.f90: Ditto.

From-SVN: r276627
parent 74e4fb13
2019-10-05 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/47045
* decl.c (variable_decl): Do not search parent namespace for symbol.
2019-10-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/91926
......
......@@ -2682,7 +2682,7 @@ variable_decl (int elem)
then we want to set the type & bail out. */
if (flag_cray_pointer && !gfc_comp_struct (gfc_current_state ()))
{
gfc_find_symbol (name, gfc_current_ns, 1, &sym);
gfc_find_symbol (name, gfc_current_ns, 0, &sym);
if (sym != NULL && sym->attr.cray_pointee)
{
m = MATCH_YES;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
! { dg-do compile }
! { dg-options "-fcray-pointer" }
! PR fortran/47054
subroutine host_sub
implicit none
real xg
pointer (paxg, xg)
call internal_sub
contains
subroutine internal_sub
implicit none
real xg
pointer (paxg, xg)
end subroutine internal_sub
end subroutine host_sub
! { dg-do compile }
! { dg-options "-fcray-pointer" }
! PR fortran/47054
! Code contributed by Deji Akingunola <deji_aking at yahoo dot ca>
subroutine host_sub(F_su,F_nk)
implicit none
integer :: F_nk
real,dimension(F_nk) :: F_su
integer G_ni, G_nj
real*8 G_xg_8, G_yg_8
pointer (paxg_8, G_xg_8(G_ni))
pointer (payg_8, G_yg_8(G_nj))
common / G_p / paxg_8,payg_8
common / G / G_ni, G_nj
call internal_sub(F_su,F_nk)
return
contains
subroutine internal_sub(F_su,F_nk)
implicit none
integer G_ni, G_nj
real*8 G_xg_8, G_yg_8
pointer (paxg_8, G_xg_8(G_ni))
pointer (payg_8, G_yg_8(G_nj))
common / G_p / paxg_8,payg_8
common / G / G_ni, G_nj
integer :: F_nk
real,dimension(F_nk) :: F_su
integer k,k2
k2 = 0
do k = 1, F_nk, 2
k2 = k2+1
F_su(k) = F_su(k) + 1.0
enddo
return
end subroutine internal_sub
end subroutine host_sub
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment