aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog10
-rw-r--r--gcc/testsuite/gfortran.dg/do_iterator.f908
-rw-r--r--gcc/testsuite/gfortran.dg/pr17708.f904
-rw-r--r--gcc/testsuite/gfortran.dg/select_4.f9012
-rw-r--r--gcc/testsuite/lib/gfortran-dg.exp39
5 files changed, 57 insertions, 16 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 68594ec..0feb30b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2005-02-20 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * gfortran.dg/do_iterator: Split loop, markup all lines for
+ which an error locus is printed.
+ * gfortran.dg/pr17708.f90: Markup all lines for which an error
+ locus is printed.
+ * gfortran.dg/select_4.f90: Likewise.
+ * lib/gfortran-dg.exp (gfortran-dg-test): Handle gfortran error
+ locuses in the various permutations.
+
2005-02-20 Dorit Naishlos <dorit@il.ibm.com>
PR tree-optimization/19951
diff --git a/gcc/testsuite/gfortran.dg/do_iterator.f90 b/gcc/testsuite/gfortran.dg/do_iterator.f90
index 982568e..0e11aa2 100644
--- a/gcc/testsuite/gfortran.dg/do_iterator.f90
+++ b/gcc/testsuite/gfortran.dg/do_iterator.f90
@@ -1,8 +1,12 @@
! { dg-do compile }
! various checks which verify that we don't change do-iterators
-DO I=1,5
- I=1 ! { dg-error "cannot be redefined" "changing do-iterator 1" }
+DO I=1,5 ! { dg-error "cannot be redefined" "changing do-iterator 1" }
+ I=1 ! { dg-error "cannot be redefined" "changing do-iterator 1" }
+END DO
+DO I=1,5 ! { dg-error "cannot be redefined" "changing do-iterator 2" }
READ(5,*) I ! { dg-error "cannot be redefined" "changing do-iterator 2" }
+END DO
+DO I=1,5 ! { dg-error "cannot be redefined" "changing do-iterator 3" }
READ(5,*,iostat=i) j ! { dg-error "cannot be redefined" "changing do-iterator 3" }
ENDDO
END
diff --git a/gcc/testsuite/gfortran.dg/pr17708.f90 b/gcc/testsuite/gfortran.dg/pr17708.f90
index 7485da8..b696b0c 100644
--- a/gcc/testsuite/gfortran.dg/pr17708.f90
+++ b/gcc/testsuite/gfortran.dg/pr17708.f90
@@ -2,8 +2,8 @@
program test
j = 0
do 10 i=1,3
- if(i == 2) goto 10 ! { dg-warning "" "" }
+ if(i == 2) goto 10 ! { dg-warning "jumps to END" }
j = j+1
-10 enddo
+10 enddo ! { dg-warning "jumps to END" }
if (j/=2) call abort
end
diff --git a/gcc/testsuite/gfortran.dg/select_4.f90 b/gcc/testsuite/gfortran.dg/select_4.f90
index 8fb661f..dbced6e 100644
--- a/gcc/testsuite/gfortran.dg/select_4.f90
+++ b/gcc/testsuite/gfortran.dg/select_4.f90
@@ -4,15 +4,15 @@
program select_5
integer i
select case(i)
- case (20:30)
- case (25:) ! { dg-error "overlaps with CASE" "" }
+ case (20:30) ! { dg-error "overlaps with CASE" }
+ case (25:) ! { dg-error "overlaps with CASE" }
end select
select case(i)
- case (30)
- case (25:) ! { dg-error "overlaps with CASE" "" }
+ case (30) ! { dg-error "overlaps with CASE" }
+ case (25:) ! { dg-error "overlaps with CASE" }
end select
select case(i)
- case (20:30)
- case (25) ! { dg-error "overlaps with CASE" "" }
+ case (20:30) ! { dg-error "overlaps with CASE" }
+ case (25) ! { dg-error "overlaps with CASE" }
end select
end program select_5
diff --git a/gcc/testsuite/lib/gfortran-dg.exp b/gcc/testsuite/lib/gfortran-dg.exp
index 2387403..d6887b0 100644
--- a/gcc/testsuite/lib/gfortran-dg.exp
+++ b/gcc/testsuite/lib/gfortran-dg.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2004 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -25,11 +25,38 @@ proc gfortran-dg-test { prog do_what extra_tool_flags } {
set comp_output [lindex $result 0]
set output_file [lindex $result 1]
- # Put the error message on the same line as the line number
- # FIXME: Add a colon after line number
- # Remove the line of source code with the error and
- # the number pointing to error
- regsub -all "\n\n\[^\n\]*\n *\[0-9\]*\n" $comp_output ": " comp_output
+ # gfortran error messages look like this:
+ # In file [name]:[line]
+ #
+ # some code
+ # 1
+ # Error: Some error at (1) and (2)
+ # or
+ # In file [name]:[line]
+ #
+ # some code
+ # 1
+ # In file [name]:[line2]
+ #
+ # some other code
+ # 2
+ # Error: Some error at (1) and (2)
+ # or
+ # In file [name]:[line]
+ #
+ # some code and some more code
+ # 1 2
+ # Error: Some error at (1) and (2)
+ #
+ # We collapse these to look like:
+ # [name]:[line]: Error: Some error at (1) and (2)
+ # or
+ # [name]:[line]: Error: Some error at (1) and (2)
+ # [name]:[line2]: Error: Some error at (1) and (2)
+ # We proceed in two steps: first we deal with the form with two
+ # different locus lines, then with the form with only one locus line.
+ regsub -all " In file (\[^\n\]*)\n\n\[^\n\]*\n\[^\n\]*\n In file (\[^\n\]*)\n\n\[^\n\]*\n\[^\n\]*\n(\[^\n\]*)\n" $comp_output "\\1: \\3\n\\2: \\3\n" comp_output
+ regsub -all " In file (\[^\n\]*)\n\n\[^\n\]*\n\[^\n\]*\n(\[^\n\]*)\n" $comp_output "\\1: \\2\n" comp_output
return [list $comp_output $output_file]
}