aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2013-05-05 16:01:38 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2013-05-05 16:01:38 +0200
commit07416986eccd280f847845c33215ecb3add7b195 (patch)
tree1179936b5bb8a899dbbce518e28a407fe9795743 /gcc
parent3a1ee99e1af05d2d86e5119de025c6d8e25a40ff (diff)
downloadgcc-07416986eccd280f847845c33215ecb3add7b195.zip
gcc-07416986eccd280f847845c33215ecb3add7b195.tar.gz
gcc-07416986eccd280f847845c33215ecb3add7b195.tar.bz2
re PR fortran/57141 (Cannot change attributes of USE-associated intrinsic)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/decl.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/bound_2.f903
-rw-r--r--gcc/testsuite/gfortran.dg/null_8.f9015
5 files changed, 29 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 3b8fe53..d595cf2 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 0187911..6ae51e2 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -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;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8a3efcd..2dde9c6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
diff --git a/gcc/testsuite/gfortran.dg/bound_2.f90 b/gcc/testsuite/gfortran.dg/bound_2.f90
index 3b99a1f..d26695c 100644
--- a/gcc/testsuite/gfortran.dg/bound_2.f90
+++ b/gcc/testsuite/gfortran.dg/bound_2.f90
@@ -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
index 0000000..514c0a7
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/null_8.f90
@@ -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