re PR fortran/63674 ([F03] procedure pointer and non/pure procedure)
authorJanus Weil <janus@gcc.gnu.org>
Mon, 15 Dec 2014 10:34:46 +0000 (11:34 +0100)
committerJanus Weil <janus@gcc.gnu.org>
Mon, 15 Dec 2014 10:34:46 +0000 (11:34 +0100)
2014-12-15  Janus Weil  <janus@gcc.gnu.org>

PR fortran/63674
* resolve.c (check_pure_function): Rewording in error message.

2014-12-15  Janus Weil  <janus@gcc.gnu.org>

PR fortran/63674
* gfortran.dg/forall_5.f90: Modified error message.
* gfortran.dg/proc_ptr_comp_39.f90: Ditto.
* gfortran.dg/pure_dummy_length_1.f90: Ditto.
* gfortran.dg/stfunc_6.f90: Ditto.
* gfortran.dg/typebound_operator_4.f90: Ditto.

From-SVN: r218738

gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/forall_5.f90
gcc/testsuite/gfortran.dg/proc_ptr_comp_39.f90
gcc/testsuite/gfortran.dg/pure_dummy_length_1.f90
gcc/testsuite/gfortran.dg/stfunc_6.f90
gcc/testsuite/gfortran.dg/typebound_operator_4.f03

index 24bddef50d560f5725d273848ed4db03fd8fe325..8b10a4864925ff6c9a76ed9c25349cac151409f9 100644 (file)
@@ -1,3 +1,8 @@
+2014-12-15  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/63674
+       * resolve.c (check_pure_function): Rewording in error message.
+
 2014-12-14  Janus Weil  <janus@gcc.gnu.org>
 
        PR fortran/63674
index 6a0a869f68cce3e19f093972ca97fd5b65883fcd..fec36c9cdfa7c9f820fed10376866152d5d933f6 100644 (file)
@@ -2808,7 +2808,7 @@ pure_stmt_function (gfc_expr *e, gfc_symbol *sym)
 }
 
 
-/* Check if a non-pure function function is allowed in the current context. */
+/* Check if an impure function is allowed in the current context. */
 
 static bool check_pure_function (gfc_expr *e)
 {
@@ -2817,21 +2817,21 @@ static bool check_pure_function (gfc_expr *e)
     {
       if (forall_flag)
        {
-         gfc_error ("Reference to non-PURE function %qs at %L inside a "
+         gfc_error ("Reference to impure function %qs at %L inside a "
                     "FORALL %s", name, &e->where,
                     forall_flag == 2 ? "mask" : "block");
          return false;
        }
       else if (gfc_do_concurrent_flag)
        {
-         gfc_error ("Reference to non-PURE function %qs at %L inside a "
+         gfc_error ("Reference to impure function %qs at %L inside a "
                     "DO CONCURRENT %s", name, &e->where,
                     gfc_do_concurrent_flag == 2 ? "mask" : "block");
          return false;
        }
       else if (gfc_pure (NULL))
        {
-         gfc_error ("Reference to non-PURE function %qs at %L "
+         gfc_error ("Reference to impure function %qs at %L "
                     "within a PURE procedure", name, &e->where);
          return false;
        }
index 2e21868effba8d18f838aaabe155959ecedb30f8..9a0df0582453c4f1493728f84cfda19abd12ab4d 100644 (file)
@@ -1,3 +1,12 @@
+2014-12-15  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/63674
+       * gfortran.dg/forall_5.f90: Modified error message.
+       * gfortran.dg/proc_ptr_comp_39.f90: Ditto.
+       * gfortran.dg/pure_dummy_length_1.f90: Ditto.
+       * gfortran.dg/stfunc_6.f90: Ditto.
+       * gfortran.dg/typebound_operator_4.f90: Ditto.
+
 2014-12-15  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/64284
index 43ed2b5c313627384537938e2e3fd3859a6891e2..55491f5bd450ae76a92412a83cc7a9f0f1e9b79f 100644 (file)
@@ -18,14 +18,14 @@ end module foo
   logical :: s(n)
 
   a = 0
-  forall (i=1:n, foot (i)) a(i) = i  ! { dg-error "non-PURE" }
+  forall (i=1:n, foot (i)) a(i) = i  ! { dg-error "impure" }
   if (any (a .ne. (/0,2,3,0/))) call abort ()
 
-  forall (i=1:n, s (i) .or. t(i)) a(i) = i  ! { dg-error "non-PURE|LOGICAL" }
+  forall (i=1:n, s (i) .or. t(i)) a(i) = i  ! { dg-error "impure|LOGICAL" }
   if (any (a .ne. (/0,3,2,1/))) call abort ()
 
   a = 0
-  forall (i=1:n, mod (i, 2) == 0) a(i) = w (i)  ! { dg-error "non-PURE" }
+  forall (i=1:n, mod (i, 2) == 0) a(i) = w (i)  ! { dg-error "impure" }
   if (any (a .ne. (/0,2,0,4/))) call abort ()
 
 contains
index cc4096a4ecc5a045c1baa7f328a4d22708d6fb8d..8294ddcc1bfcbf869c4a72c1d7b4ceb583fdf96b 100644 (file)
@@ -25,7 +25,7 @@ contains
   pure integer function eval(a)
     type(t), intent(in) :: a
     eval = a%pf()
-    eval = a%nf()   ! { dg-error "Reference to non-PURE function" }
+    eval = a%nf()   ! { dg-error "Reference to impure function" }
     call a%ps()
     call a%ns()     ! { dg-error "is not PURE" }
   end function
index b3e75a4115b9dfd0e4de8c161551af56357bb8a6..407780ddbe2d06f64abbf1c2646d784f5a2ef37e 100644 (file)
@@ -24,6 +24,6 @@
          character(*), intent(in) :: string\r
          integer(4), intent(in) :: ignore_case\r
          integer i\r
-         if (end > impure (self)) & ! { dg-error "non-PURE function" }\r
+         if (end > impure (self)) & ! { dg-error "impure function" }\r
            return\r
    end function\r
index 413e583759b1460fd41ef5f0b396e3ea4ff80f00..37137fb41f8bb9570b2bc3c76311bcd631dcb856 100644 (file)
   FORALL(i=1:4) a(i) = u (a(i)) - a(i)** 2 
   if (any (a .ne. 0)) call abort ()
   if (i .ne. 99) call abort ()
-  FORALL (i=1:4) a(i) = st3 (i) ! { dg-error "non-PURE function" "non-PURE reference in FORALL" { xfail *-*-*} }
-  FORALL (i=1:4) a(i) = v(i) ! { dg-error "non-PURE function" }
+  FORALL (i=1:4) a(i) = st3 (i) ! { dg-error "impure function" "impure reference in FORALL" { xfail *-*-*} }
+  FORALL (i=1:4) a(i) = v(i) ! { dg-error "impure function" }
 contains
   pure integer function u (x)
     integer,intent(in) :: x
-    st2 (i) = i * v(i) ! { dg-error "non-PURE function" }
+    st2 (i) = i * v(i) ! { dg-error "impure function" }
     u = st2(x)
   end function
   integer function v (x)
index 0a8415fc667f57233922e0d3fc8227132f28041d..f9a2612530ce34d843c4157681e567df4b728f4a 100644 (file)
@@ -63,8 +63,8 @@ CONTAINS
     TYPE(myint) :: x
 
     x = 0 ! { dg-bogus "is not PURE" }
-    x = x + 42 ! { dg-bogus "to a non-PURE procedure" }
-    x = x .PLUS. 5 ! { dg-bogus "to a non-PURE procedure" }
+    x = x + 42 ! { dg-bogus "to a impure procedure" }
+    x = x .PLUS. 5 ! { dg-bogus "to a impure procedure" }
   END SUBROUTINE iampure
 
 END MODULE m
@@ -75,8 +75,8 @@ PURE SUBROUTINE iampure2 ()
   TYPE(myreal) :: x
 
   x = 0.0 ! { dg-error "is not PURE" }
-  x = x + 42.0 ! { dg-error "non-PURE function" }
-  x = x .PLUS. 5.0 ! { dg-error "non-PURE function" }
+  x = x + 42.0 ! { dg-error "impure function" }
+  x = x .PLUS. 5.0 ! { dg-error "impure function" }
 END SUBROUTINE iampure2
 
 PROGRAM main