Fortran: Change XFAIL to PASS
authorTobias Burnus <tobias@codesourcery.com>
Fri, 22 Oct 2021 22:04:43 +0000 (00:04 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Fri, 22 Oct 2021 22:04:43 +0000 (00:04 +0200)
Replace dg-excess-errors by dg-error/warning and dg-prune-output for
more fine-grained output handling and to avoid XPASS.

gcc/testsuite/ChangeLog:

* gfortran.dg/associate_3.f03: Replace dg-excess-errors by
other dg-* to change XFAIL to PASS.
* gfortran.dg/binding_label_tests_4.f03: Likewise.
* gfortran.dg/block_4.f08: Likewise.
* gfortran.dg/charlen_04.f90: Likewise.
* gfortran.dg/charlen_05.f90: Likewise.
* gfortran.dg/charlen_06.f90: Likewise.
* gfortran.dg/charlen_13.f90: Likewise.
* gfortran.dg/coarray_9.f90: Likewise.
* gfortran.dg/coarray_collectives_3.f90: Likewise.
* gfortran.dg/data_invalid.f90: Likewise.
* gfortran.dg/do_4.f: Likewise.
* gfortran.dg/dollar_sym_1.f90: Likewise.
* gfortran.dg/dollar_sym_3.f: Likewise.
* gfortran.dg/fmt_tab_1.f90: Likewise.
* gfortran.dg/fmt_tab_2.f90: Likewise.
* gfortran.dg/forall_16.f90: Likewise.
* gfortran.dg/g77/970125-0.f: Likewise.
* gfortran.dg/gomp/unexpected-end.f90: Likewise.
* gfortran.dg/interface_operator_1.f90: Likewise.
* gfortran.dg/interface_operator_2.f90: Likewise.
* gfortran.dg/line_length_4.f90: Likewise.
* gfortran.dg/line_length_5.f90: Likewise.
* gfortran.dg/line_length_6.f90: Likewise.
* gfortran.dg/line_length_8.f90: Likewise.
* gfortran.dg/line_length_9.f90: Likewise.
* gfortran.dg/pr65045.f90: Likewise.
* gfortran.dg/pr69497.f90: Likewise.
* gfortran.dg/submodule_21.f08: Likewise.
* gfortran.dg/tab_continuation.f: Likewise.
* gfortran.dg/typebound_proc_2.f90: Likewise.
* gfortran.dg/warnings_are_errors_1.f90: Likewise.

31 files changed:
gcc/testsuite/gfortran.dg/associate_3.f03
gcc/testsuite/gfortran.dg/binding_label_tests_4.f03
gcc/testsuite/gfortran.dg/block_4.f08
gcc/testsuite/gfortran.dg/charlen_04.f90
gcc/testsuite/gfortran.dg/charlen_05.f90
gcc/testsuite/gfortran.dg/charlen_06.f90
gcc/testsuite/gfortran.dg/charlen_13.f90
gcc/testsuite/gfortran.dg/coarray_9.f90
gcc/testsuite/gfortran.dg/coarray_collectives_3.f90
gcc/testsuite/gfortran.dg/data_invalid.f90
gcc/testsuite/gfortran.dg/do_4.f
gcc/testsuite/gfortran.dg/dollar_sym_1.f90
gcc/testsuite/gfortran.dg/dollar_sym_3.f
gcc/testsuite/gfortran.dg/fmt_tab_1.f90
gcc/testsuite/gfortran.dg/fmt_tab_2.f90
gcc/testsuite/gfortran.dg/forall_16.f90
gcc/testsuite/gfortran.dg/g77/970125-0.f
gcc/testsuite/gfortran.dg/gomp/unexpected-end.f90
gcc/testsuite/gfortran.dg/interface_operator_1.f90
gcc/testsuite/gfortran.dg/interface_operator_2.f90
gcc/testsuite/gfortran.dg/line_length_4.f90
gcc/testsuite/gfortran.dg/line_length_5.f90
gcc/testsuite/gfortran.dg/line_length_6.f90
gcc/testsuite/gfortran.dg/line_length_8.f90
gcc/testsuite/gfortran.dg/line_length_9.f90
gcc/testsuite/gfortran.dg/pr65045.f90
gcc/testsuite/gfortran.dg/pr69497.f90
gcc/testsuite/gfortran.dg/submodule_21.f08
gcc/testsuite/gfortran.dg/tab_continuation.f
gcc/testsuite/gfortran.dg/typebound_proc_2.f90
gcc/testsuite/gfortran.dg/warnings_are_errors_1.f90

index da7bec9..dfd5a99 100644 (file)
@@ -34,4 +34,4 @@ PROGRAM main
     INTEGER :: b ! { dg-error "Unexpected data declaration statement" }
   END ASSOCIATE
 END PROGRAM main ! { dg-error "Expecting END ASSOCIATE" }
-! { dg-excess-errors "Unexpected end of file" }
+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }
index f8c0f04..af9a588 100644 (file)
@@ -20,4 +20,4 @@ module C
 use A
 use B ! { dg-error "Cannot open module file" }
 end module C
-! { dg-excess-errors "compilation terminated" }
+! { dg-prune-output "compilation terminated" }
index 4c63194..3ff52b0 100644 (file)
@@ -15,4 +15,4 @@ PROGRAM main
   myname2: BLOCK
   END BLOCK ! { dg-error "Expected block name of 'myname2'" }
 END PROGRAM main ! { dg-error "Expecting END BLOCK" }
-! { dg-excess-errors "Unexpected end of file" }
+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }
index f93465f..97aa0ec 100644 (file)
@@ -3,6 +3,5 @@
 program p
    type t
       character(*), allocatable :: x(*)  ! { dg-error "must have a deferred shape" }
-   end type
+   end type                              ! { dg-error "needs to be a constant specification" "" { target "*-*-*" } .-1 } 
 end
-! { dg-excess-errors "needs to be a constant specification" } 
index 0eb0015..e58f926 100644 (file)
@@ -3,6 +3,5 @@
 program p
    type t
       character(*) :: x y  ! { dg-error "error in data declaration" }
-   end type
+   end type                ! { dg-error "needs to be a constant specification" "" { target "*-*-*" } .-1 } 
 end
-! { dg-excess-errors "needs to be a constant specification" } 
index e20d604..836c1c6 100644 (file)
@@ -3,6 +3,5 @@
 program p
    type t
       character(*) :: x+1  ! { dg-error "error in data declaration" }
-   end type
+   end type                ! { dg-error "needs to be a constant specification" "" { target "*-*-*" } .-1 } 
 end
-! { dg-excess-errors "needs to be a constant specification" } 
index d89b71c..8dc192b 100644 (file)
@@ -4,7 +4,7 @@ program p
    type t
       character(2), allocatable :: a(*) ! { dg-error "must have a deferred shape" }
       character(*), allocatable :: b(2) ! { dg-error "must have a deferred shape" }
+                                        ! { dg-error "needs to be a constant specification" "" { target "*-*-*" } .-1 } 
       character(*), allocatable :: c(*) ! { dg-error "must have a deferred shape" }
-   end type
+   end type                             ! { dg-error "needs to be a constant specification" "" { target "*-*-*" } .-1 } 
 end
-! { dg-excess-errors "needs to be a constant specification" } 
index 0a4dbec..b613428 100644 (file)
@@ -16,4 +16,4 @@ critical ! "Coarrays disabled"  (but error above is fatal)
 end critical ! "Expecting END PROGRAM statement"  (but error above is fatal)
 
 end
-! { dg-excess-errors "compilation terminated" }
+! { dg-prune-output "compilation terminated" }
index 2a3ddf4..04d540f 100644 (file)
@@ -8,4 +8,4 @@ program test
   integer :: val
   call co_max(val) ! { dg-error "Coarrays disabled at .1., use '-fcoarray=' to enable" }
 end program test
-! { dg-excess-errors "compilation terminated" }
+! { dg-prune-output "compilation terminated" }
index 960a8f3..6d03587 100644 (file)
@@ -40,7 +40,7 @@ SUBROUTINE data_init_array_invalid()
   data       e(2) / 2 /                          ! { dg-error "re-initialization" }
 
   integer :: f(3) = 0                            ! { dg-error "already is initialized" }
-  data       f(2) / 1 /
+  data       f(2) / 1 /                          ! { dg-error "already is initialized" }
 
   ! full array initializer, re-initialize subsection
   integer :: g(3)
@@ -48,7 +48,7 @@ SUBROUTINE data_init_array_invalid()
   data       g(1:2) / 2*2 /                      ! { dg-error "re-initialization" }
 
   integer :: h(3) = 1                            ! { dg-error "already is initialized" }
-  data       h(2:3) / 2*2 /
+  data       h(2:3) / 2*2 /                      ! { dg-error "already is initialized" }
 
   ! full array initializer, re-initialize full array
   integer :: i(3)
@@ -56,7 +56,7 @@ SUBROUTINE data_init_array_invalid()
   data       i   / 2,2,2 /                       ! { dg-error "re-initialization" }
 
   integer :: j(3) = 1                            ! { dg-error "already is initialized" }
-  data       j   / 3*2 /
+  data       j   / 3*2 /                         ! { dg-error "already is initialized" }
 END SUBROUTINE
 
 SUBROUTINE data_init_matrix_invalid()
@@ -85,7 +85,7 @@ SUBROUTINE data_init_matrix_invalid()
   data       e(2,3) / 2 /                        ! { dg-error "re-initialization" }
 
   integer :: f(3,3) = 1                          ! { dg-error "already is initialized" }
-  data       f(3,2) / 2 /
+  data       f(3,2) / 2 /                        ! { dg-error "already is initialized" }
 
   ! full array initializer, re-initialize subsection
   integer :: g(3,3)
@@ -93,7 +93,7 @@ SUBROUTINE data_init_matrix_invalid()
   data       g(2:3,2:3) / 2, 2*3, 4 /            ! { dg-error "re-initialization" }
 
   integer :: h(3,3) = 1                          ! { dg-error "already is initialized" }
-  data       h(2:3,2:3) / 2, 2*3, 4 /
+  data       h(2:3,2:3) / 2, 2*3, 4 /            ! { dg-error "already is initialized" }
 
   ! full array initializer, re-initialize full array
   integer :: i(3,3)
@@ -101,7 +101,7 @@ SUBROUTINE data_init_matrix_invalid()
   data       i   / 9 * 1 /                       ! { dg-error "re-initialization" }
 
   integer :: j(3,3) = 0                          ! { dg-error "already is initialized" }
-  data       j   / 9 * 1 /
+  data       j   / 9 * 1 /                       ! { dg-error "already is initialized" }
 END SUBROUTINE
 
 SUBROUTINE data_init_misc_invalid()
@@ -112,11 +112,9 @@ SUBROUTINE data_init_misc_invalid()
   ! index out-of-bounds, direct access
   integer :: b(3)
   data       b(-2) / 1 /                         ! { dg-error "below array lower bound" }
-
+                                                 ! { dg-warning "is out of bounds" "" { target *-*-* } .-1 }
   ! index out-of-bounds, implied do-loop (PR32315)
   integer :: i
   character(len=20), dimension(4) :: string
   data (string(i), i = 1, 5) / 'A', 'B', 'C', 'D', 'E' /   ! { dg-error "above array upper bound" }
 END SUBROUTINE
-
-! { dg-excess-errors "" }
index 6d688a0..e391b68 100644 (file)
@@ -4,6 +4,7 @@
        if(i.eq.5)then
           goto 10
  10    endif           ! { dg-error "is within another block" }
-       end
-! { dg-excess-errors "" }
+       end             ! { dg-error "END DO statement expected" }
+                       ! { dg-warning "Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE" "" { target "*-*-*" } 6 }
+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }
 
index cb53fd3..5cee775 100644 (file)
@@ -7,4 +7,4 @@
       PARAMETER (PLT$B_OPC=0) !  Unreachable as the error above is now fatal
       common /abc$def/ PLT$C_HOUSTPIX, PLT$C_COMMAND !  Unreachable as the error above is now fatal
       end
-! { dg-excess-errors "compilation terminated" }
+! { dg-prune-output "compilation terminated" }
index 7b9b344..52ce041 100644 (file)
@@ -8,4 +8,4 @@ c Segmentation fault in gfc_restore_last_undo_checkpoint
       COMMON RADE3155V62$JUTMU9L9E(3,3,3), LADE314JUTMP9         ! { dg-error "Invalid character '\\$' at .1.. Use '-fdollar-ok' to allow it as an extension" }
      +LHEDDJNTMP9L(3,3,3)                                                       
       end
-! { dg-excess-errors "compilation terminated" }
+! { dg-prune-output "compilation terminated" }
index a763714..0b36aee 100644 (file)
@@ -6,7 +6,6 @@
         write (*, 10)
         ! There is a tab character before 'bug!'.  This is accepted without
         ! the -Wno-tabs option or a -std= option.
- 10     format ('Hello ',      'bug!') ! { dg-warning "tab character in format" }
-
+ 10     format ('Hello ',      'bug!') ! { dg-warning "tab character in format at " }
+                                        ! { dg-warning "tab character at " "" { target "*-*-*" } .-1 }
       end
-! { dg-excess-errors "tab character in format" }
index bfff7ce..3f2d6fc 100644 (file)
@@ -5,5 +5,4 @@
       program TestFormat
         write (*, 10)
  10     format ('Hello ',      'bug!') ! { dg-warning "tab character in format" }
-      end
-! { dg-excess-errors "tab character in FORMAT" }
+      end                               ! { dg-warning "tab character at " "" { target "*-*-*" } .-1 }
index 017aa5a..e341c37 100644 (file)
@@ -4,6 +4,4 @@
   implicit none
   integer i,dest(10)
   forall (i=2:ix)  dest(i)=i ! { dg-error "has no IMPLICIT type" }
-end
-
-! { dg-excess-errors "Can't convert UNKNOWN to INTEGER" }
+end                          ! { dg-error "Cannot convert UNKNOWN to INTEGER" "" { target "*-*-*" } .-1 }
index 656c475..0c12e26 100644 (file)
@@ -1,7 +1,6 @@
 c { dg-do compile }
 c
-c Following line added on transfer to gfortran testsuite
-c { dg-excess-errors "" }
+c { dg-additional-options "-w" }
 c
 C JCB comments:
 C g77 doesn't accept the added line "integer(kind=7) ..." --
@@ -35,10 +34,10 @@ c     Frontend bug fixed by JCB 1998-06-01 com.c &c changes.
         print *, max4
         print *, i4, %loc(i4)
         print *, i8, %loc(i8)
-        call foo(i4, %loc(i4), i8, %loc(i8))
+        call foo(i4, %loc(i4), i8, %loc(i8))  ! { dg-error "Type mismatch in argument 'i8a' at .1.; passed INTEGER.8. to INTEGER.4." }
         end
         subroutine foo(i4, i4a, i8, i8a)
-        integer(kind=7) i4a, i8a
+        integer(kind=7) i4a, i8a  ! { dg-error "Kind 7 not supported for type INTEGER" }
         integer(kind=8) i8
         print *, i4, i4a
         print *, i8, i8a
index d2e8daa..96f10b5 100644 (file)
@@ -120,4 +120,4 @@ end do
 
 end  ! { dg-error "Unexpected END statement" }
 
-! { dg-excess-errors "Unexpected end of file" }
+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }
index 97d260a..6684751 100644 (file)
@@ -7,4 +7,4 @@ program p
    interface operator ( .gt. )
    end interface operator        ! { dg-error "END INTERFACE OPERATOR" }
 end program p                    ! { dg-error "END INTERFACE" }
-! { dg-excess-errors "Unexpected end of file" }
+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }
index a739596..11b9ff5 100644 (file)
@@ -7,4 +7,4 @@ program p
    interface operator ( .gt. )
    end interface operator (.lt.) ! { dg-error "END INTERFACE OPERATOR" }
 end program p                    ! { dg-error "END INTERFACE" }
-! { dg-excess-errors "Unexpected end of file" }
+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }
index 6e3c76e..8004040 100644 (file)
@@ -16,4 +16,4 @@
    end subroutine foo
   end
 ! { dg-error "Line truncated" " " { target *-*-* } 8 }
-! { dg-excess-errors "some warnings being treated as errors" }
+! { dg-prune-output "some warnings being treated as errors" }
index d7aca12..8183245 100644 (file)
@@ -4,4 +4,4 @@ print *, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 end 
 ! { dg-error "Line truncated" " " { target *-*-* } 3 }
 ! { dg-error "Unterminated character constant" " " { target *-*-* } 3 }
-! { dg-excess-errors "some warnings being treated as errors" }
+! { dg-prune-output "some warnings being treated as errors" }
index 92f3401..8cdb020 100644 (file)
@@ -5,4 +5,4 @@
 !
       print *, 1                                                                                                                                          + 2 ! { dg-error "Line truncated at .1." }
       end
-! { dg-excess-errors "some warnings being treated as errors" }
+! { dg-prune-output "some warnings being treated as errors" }
index 3f0efaf..afd6cc2 100644 (file)
@@ -6,4 +6,4 @@
 !
       print *, 1                                                                                                                                          + 2 ! { dg-error "Line truncated at .1." }
       end
-! { dg-excess-errors "some warnings being treated as errors" }
+! { dg-prune-output "some warnings being treated as errors" }
index f338972..6c156af 100644 (file)
@@ -6,4 +6,4 @@
 !
       print *, 1                                                                                                                                          + 2 ! { dg-error "Line truncated at .1." }
       end
-! { dg-excess-errors "some warnings being treated as errors" }
+! { dg-prune-output "some warnings being treated as errors" }
index 5b838d5..c496529 100644 (file)
@@ -12,4 +12,4 @@ i:block
 end block i      ! { dg-error "Expecting END PROGRAM statement" }
 print*,i         ! { dg-error "not appropriate for an expression" }
 end
-! { dg-excess-errors "Unexpected end of file" }
+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }
index 1698ebb..291d906 100644 (file)
@@ -5,4 +5,4 @@ program p
    do
    end block ! { dg-error "Expecting END DO statement" }
 end ! { dg-error "END DO statement expected" }
-! { dg-excess-errors "Unexpected end of file" }
+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }
index c96acb2..bb62600 100644 (file)
@@ -16,4 +16,5 @@ PROGRAM MyProg
   USE MainModule
   WRITE(*,*) a
 END PROGRAM MyProg
-! { dg-excess-errors "does not contain a MODULE PROCEDURE" }
+! { dg-error "does not contain a MODULE PROCEDURE" "" { target "*-*-*" } 0 }
+! { dg-prune-output "compilation terminated" }
index 85d2307..719b03f 100644 (file)
@@ -17,4 +17,4 @@
 ! { dg-error "Nonconforming tab character in column 1 of line 13" "Nonconforming tab" { target *-*-* } 0 }
 ! { dg-error "Nonconforming tab character in column 1 of line 14" "Nonconforming tab" { target *-*-* } 0 }
 ! { dg-error "Nonconforming tab character in column 1 of line 15" "Nonconforming tab" { target *-*-* } 0 }
-! { dg-excess-errors "some warnings being treated as errors" }
+! { dg-prune-output "some warnings being treated as errors" }
index a34d935..14f01ef 100644 (file)
@@ -9,24 +9,23 @@ MODULE testmod
 
   TYPE t
     INTEGER :: x
-  CONTAINS ! { dg-error "Fortran 2003" }
-    PROCEDURE proc1 ! { dg-error "Fortran 2003" }
-    PROCEDURE :: proc2 => p2 ! { dg-error "Fortran 2003" }
-  END TYPE t
+  CONTAINS ! { dg-error "Fortran 2003: CONTAINS block in derived type definition" }
+    PROCEDURE proc1 ! { dg-error "Fortran 2003: PROCEDURE statement" }
+    PROCEDURE :: proc2 => p2 ! { dg-error "Fortran 2003: PROCEDURE statement" }
+  END TYPE t                 ! { dg-error "Fortran 2008: Derived type definition at .1. with empty CONTAINS section" }
 
 CONTAINS
   
-  SUBROUTINE proc1 (me)
+  SUBROUTINE proc1 (me) ! { dg-error "no IMPLICIT type" }
     IMPLICIT NONE
-    TYPE(t1) :: me
+    TYPE(t1) :: me     ! { dg-error "being used before it is defined" }
   END SUBROUTINE proc1
 
-  REAL FUNCTION proc2 (me, x)
+  REAL FUNCTION proc2 (me, x) ! { dg-error "no IMPLICIT type" }
     IMPLICIT NONE
-    TYPE(t1) :: me
+    TYPE(t1) :: me     ! { dg-error "being used before it is defined" }
     REAL :: x
     proc2 = x / 2
   END FUNCTION proc2
 
 END MODULE testmod
-! { dg-excess-errors "no IMPLICIT type" }
index 150f234..1f9d38d 100644 (file)
@@ -22,4 +22,4 @@
 
        end
 ! { dg-final { output-exists-not } }
-! { dg-excess-errors "warnings being treated as errors" }
+! { dg-prune-output "warnings being treated as errors" }