From: fxcoudert Date: Mon, 9 Jun 2014 09:25:14 +0000 (+0000) Subject: PR fortran/45187 X-Git-Tag: upstream/5.3.0~7895 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cd9589161d0d4bd959a9d4610c5ee5f24765ea35;p=platform%2Fupstream%2Flinaro-gcc.git PR fortran/45187 * trans-decl.c (gfc_create_module_variable): Don't create Cray-pointee decls twice. * gfortran.dg/cray_pointers_10.f90: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211367 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index c292130..d7d5e24 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2014-06-09 Francois-Xavier Coudert + + PR fortran/45187 + * trans-decl.c (gfc_create_module_variable): Don't create + Cray-pointee decls twice. + 2014-06-06 Francois-Xavier Coudert * io.c (resolve_tag): Warn on non-default kind for NUMBER, diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index db46858..959bcb1 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -4278,8 +4278,8 @@ gfc_create_module_variable (gfc_symbol * sym) } /* Don't generate variables from other modules. Variables from - COMMONs will already have been generated. */ - if (sym->attr.use_assoc || sym->attr.in_common) + COMMONs and Cray pointees will already have been generated. */ + if (sym->attr.use_assoc || sym->attr.in_common || sym->attr.cray_pointee) return; /* Equivalenced variables arrive here after creation. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1bd3bac..6932ebe 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-06-09 Francois-Xavier Coudert + + PR fortran/45187 + * gfortran.dg/cray_pointers_10.f90: New file. + 2014-06-09 Jakub Jelinek * gfortran.dg/gomp/udr6.f90 (f1, f2, f3): Use complex(kind=8) diff --git a/gcc/testsuite/gfortran.dg/cray_pointers_10.f90 b/gcc/testsuite/gfortran.dg/cray_pointers_10.f90 new file mode 100644 index 0000000..1ac98f3 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/cray_pointers_10.f90 @@ -0,0 +1,18 @@ +! { dg-do run } +! { dg-options "-fcray-pointer" } +! +! PR fortran/45187 +! +module foo + implicit none + real :: a + pointer(c_a, a) +end module foo + +program test + use foo + real :: z + c_a = loc(z) + a = 42 + if (z /= 42) call abort +end program test