From 07416986eccd280f847845c33215ecb3add7b195 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Sun, 5 May 2013 16:01:38 +0200 Subject: [PATCH] re PR fortran/57141 (Cannot change attributes of USE-associated intrinsic) 2013-05-05 Tobias Burnus PR fortran/57141 * decl.c (gfc_match_null): Permit use-associated NULL intrinsic. 2013-05-05 Tobias Burnus PR fortran/57141 * gfortran.dg/null_8.f90: New. From-SVN: r198609 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/decl.c | 1 + gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/bound_2.f90 | 3 ++- gcc/testsuite/gfortran.dg/null_8.f90 | 15 +++++++++++++++ 5 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/null_8.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 3b8fe532422..d595cf29f7a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2013-05-05 Tobias Burnus + + PR fortran/57141 + * decl.c (gfc_match_null): Permit use-associated + NULL intrinsic. + 2013-05-04 Tobias Burnus * decl.c (gfc_verify_c_interop_param): Permit allocatable diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 0187911ad20..6ae51e2db7a 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 8a3efcdf735..2dde9c6482e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-05-05 Tobias Burnus + + PR fortran/57141 + * gfortran.dg/null_8.f90: New. + 2013-05-04 Paolo Carlini PR c++/53745 diff --git a/gcc/testsuite/gfortran.dg/bound_2.f90 b/gcc/testsuite/gfortran.dg/bound_2.f90 index 3b99a1f5471..d26695c30fb 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 00000000000..514c0a78f63 --- /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 -- 2.30.2