From: kargl Date: Sun, 13 Oct 2019 17:16:40 +0000 (+0000) Subject: 2019-10-13 Damian Rouson X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ead03f25cc8b054811c518491f11d10266c52f69;p=thirdparty%2Fgcc.git 2019-10-13 Damian Rouson PR fortran/91513 * resolve.c (resolve_ordinary_assign): Improved error message. 2019-10-13 Damian Rouson PR fortran/91513 * gfortran.dg/impure_assignment_2.f90: Update dg-error regex. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@276941 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index e215763a8629..2892011b740e 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2019-10-13 Damian Rouson + + PR fortran/91513 + * resolve.c (resolve_ordinary_assign): Improved error message. + 2019-10-13 Steven G. Kargl PR fortran/90297 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 10da8f9a00d9..93f2d0aa7612 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -10769,9 +10769,12 @@ resolve_ordinary_assign (gfc_code *code, gfc_namespace *ns) "component in a PURE procedure", &rhs->where); else - gfc_error ("The impure variable at %L is assigned to " - "a derived type variable with a POINTER " - "component in a PURE procedure (12.6)", + /* F2008, C1283 (4). */ + gfc_error ("In a pure subprogram an INTENT(IN) dummy argument " + "shall not be used as the expr at %L of an intrinsic " + "assignment statement in which the variable is of a " + "derived type if the derived type has a pointer " + "component at any level of component selection.", &rhs->where); return rval; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b914cb8fd42f..eca8cc6e44da 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-10-13 Damian Rouson + + PR fortran/91513 + * gfortran.dg/impure_assignment_2.f90: Update dg-error regex. + 2019-10-13 Thomas Koenig PR fortran/92017 diff --git a/gcc/testsuite/gfortran.dg/impure_assignment_2.f90 b/gcc/testsuite/gfortran.dg/impure_assignment_2.f90 index 38d841d7a5d9..1c1da4b9ee3b 100644 --- a/gcc/testsuite/gfortran.dg/impure_assignment_2.f90 +++ b/gcc/testsuite/gfortran.dg/impure_assignment_2.f90 @@ -40,7 +40,7 @@ CONTAINS PURE FUNCTION give_next3(node) TYPE(node_type), intent(in) :: node TYPE(node_type) :: give_next - give_next = node ! { dg-error "impure variable" } + give_next = node ! { dg-error "pure subprogram" } END FUNCTION END MODULE pr20863