re PR fortran/57141 (Cannot change attributes of USE-associated intrinsic)
authorTobias Burnus <burnus@net-b.de>
Sun, 5 May 2013 14:01:38 +0000 (16:01 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Sun, 5 May 2013 14:01:38 +0000 (16:01 +0200)
2013-05-05  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57141
        * decl.c (gfc_match_null): Permit use-associated
        NULL intrinsic.

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

        PR fortran/57141
        * gfortran.dg/null_8.f90: New.

From-SVN: r198609

gcc/fortran/ChangeLog
gcc/fortran/decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/bound_2.f90
gcc/testsuite/gfortran.dg/null_8.f90 [new file with mode: 0644]

index 3b8fe53242230cc119caf85bb4a4b8cbcfc1cce0..d595cf29f7ac64cd7c7a09b0da071b9582986654 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-05  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/57141
+       * decl.c (gfc_match_null): Permit use-associated
+       NULL intrinsic.
+
 2013-05-04  Tobias Burnus  <burnus@net-b.de>
 
        * decl.c (gfc_verify_c_interop_param): Permit allocatable
index 0187911ad204815c87b0ef35e55ac68af184df46..6ae51e2db7a417ee21d040ac8bc0c92c44af2ccb 100644 (file)
@@ -1710,6 +1710,7 @@ gfc_match_null (gfc_expr **result)
   gfc_intrinsic_symbol (sym);
 
   if (sym->attr.proc != PROC_INTRINSIC
+      && !(sym->attr.use_assoc && sym->attr.intrinsic)
       && (!gfc_add_procedure(&sym->attr, PROC_INTRINSIC, sym->name, NULL)
          || !gfc_add_function (&sym->attr, sym->name, NULL)))
     return MATCH_ERROR;
index 8a3efcdf73509ae314b65dff3fb27127051b3f1e..2dde9c6482ebc359a032718474a288efbb011696 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-05  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/57141
+       * gfortran.dg/null_8.f90: New.
+
 2013-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/53745
index 3b99a1f5471df5f9f15e28dd68ba5c8606edaba3..d26695c30fb561f9c0ff97fca3a9e58fc60fa663 100644 (file)
@@ -193,7 +193,8 @@ contains
   end subroutine sub3
 
   subroutine foo (x,n)
-    integer :: x(7,n,2,*), n
+    integer :: n
+    integer :: x(7,n,2,*)
 
     if (ubound(x,1) /= 7 .or. ubound(x,2) /= 4 .or. ubound(x,3) /= 2) call abort
   end subroutine foo
diff --git a/gcc/testsuite/gfortran.dg/null_8.f90 b/gcc/testsuite/gfortran.dg/null_8.f90
new file mode 100644 (file)
index 0000000..514c0a7
--- /dev/null
@@ -0,0 +1,15 @@
+! { dg-do compile }
+!
+! PR fortran/57141
+!
+! Contributed by Roger Ferrer Ibanez 
+!
+MODULE M
+    INTRINSIC :: NULL
+END MODULE M
+
+MODULE M_INTERN
+    USE M
+    IMPLICIT NONE
+    REAL, POINTER :: ARR(:) => NULL()
+END MODULE M_INTERN