OSDN Git Service

2010-05-06 Tobias Burnus <burnus@net-b.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 May 2010 22:11:14 +0000 (22:11 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 May 2010 22:11:14 +0000 (22:11 +0000)
        PR fortran/43985
        * trans-types.c (gfc_sym_type): Mark Cray pointees as
        GFC_POINTER_TYPE_P.

2010-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/43985
        * gfortran.dg/gomp/crayptr5.f90: New test case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159086 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/trans-types.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/gomp/crayptr5.f90 [new file with mode: 0644]

index 5b6b42f..8580997 100644 (file)
@@ -1,7 +1,13 @@
+2010-05-0  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/43985
+       * trans-types.c (gfc_sym_type): Mark Cray pointees as
+       GFC_POINTER_TYPE_P.
+
 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
 
-        * resolve.c (traverse_data_list): Rephrase error message for
-        non-constant bounds in data-implied-do.
+       * resolve.c (traverse_data_list): Rephrase error message for
+       non-constant bounds in data-implied-do.
 
 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
 
index 31a250d..dca19ce 100644 (file)
@@ -1793,6 +1793,9 @@ gfc_sym_type (gfc_symbol * sym)
                                                restricted);
              byref = 0;
            }
+
+         if (sym->attr.cray_pointee)
+           GFC_POINTER_TYPE_P (type) = 1;
         }
       else
        {
@@ -1808,7 +1811,7 @@ gfc_sym_type (gfc_symbol * sym)
     {
       if (sym->attr.allocatable || sym->attr.pointer)
        type = gfc_build_pointer_type (sym, type);
-      if (sym->attr.pointer)
+      if (sym->attr.pointer || sym->attr.cray_pointee)
        GFC_POINTER_TYPE_P (type) = 1;
     }
 
index 0bd0219..686fc38 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/43985
+       * gfortran.dg/gomp/crayptr5.f90: New test case.
+
 2010-05-05  Jason Merrill  <jason@redhat.com>
 
        PR debug/43370
diff --git a/gcc/testsuite/gfortran.dg/gomp/crayptr5.f90 b/gcc/testsuite/gfortran.dg/gomp/crayptr5.f90
new file mode 100644 (file)
index 0000000..5ade16c
--- /dev/null
@@ -0,0 +1,27 @@
+! { dg-do compile }
+! { dg-options "-fopenmp -fcray-pointer" }
+!
+! PR fortran/43985
+
+subroutine pete(A)
+  real(8) :: A
+  print *, 'pete got ',A
+  if (A /= 3.0) call abort()
+end subroutine pete
+
+       subroutine bob()
+         implicit none
+         real(8) peted
+         pointer (ipeted, peted(*))
+         integer(4) sz
+         ipeted = malloc(5*8)
+         peted(1:5) = [ 1.,2.,3.,4.,5.]
+         sz = 3
+!$omp parallel default(shared)
+         call pete(peted(sz))
+!$omp end parallel
+         return
+       end subroutine bob
+
+call bob()
+end