Commit da7fdff6 by Tobias Schlüter Committed by Tobias Schlüter

do_iterator: Split loop, markup all lines for which an error locus is printed.

* 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.

From-SVN: r95329
parent 4a22dcdd
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> 2005-02-20 Dorit Naishlos <dorit@il.ibm.com>
PR tree-optimization/19951 PR tree-optimization/19951
......
! { dg-do compile } ! { dg-do compile }
! various checks which verify that we don't change do-iterators ! various checks which verify that we don't change do-iterators
DO I=1,5 DO I=1,5 ! { dg-error "cannot be redefined" "changing do-iterator 1" }
I=1 ! { 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" } 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" } READ(5,*,iostat=i) j ! { dg-error "cannot be redefined" "changing do-iterator 3" }
ENDDO ENDDO
END END
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
program test program test
j = 0 j = 0
do 10 i=1,3 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 j = j+1
10 enddo 10 enddo ! { dg-warning "jumps to END" }
if (j/=2) call abort if (j/=2) call abort
end end
...@@ -4,15 +4,15 @@ ...@@ -4,15 +4,15 @@
program select_5 program select_5
integer i integer i
select case(i) select case(i)
case (20:30) case (20:30) ! { dg-error "overlaps with CASE" }
case (25:) ! { dg-error "overlaps with CASE" "" } case (25:) ! { dg-error "overlaps with CASE" }
end select end select
select case(i) select case(i)
case (30) case (30) ! { dg-error "overlaps with CASE" }
case (25:) ! { dg-error "overlaps with CASE" "" } case (25:) ! { dg-error "overlaps with CASE" }
end select end select
select case(i) select case(i)
case (20:30) case (20:30) ! { dg-error "overlaps with CASE" }
case (25) ! { dg-error "overlaps with CASE" "" } case (25) ! { dg-error "overlaps with CASE" }
end select end select
end program select_5 end program select_5
# 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 # 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 # 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 } { ...@@ -25,11 +25,38 @@ proc gfortran-dg-test { prog do_what extra_tool_flags } {
set comp_output [lindex $result 0] set comp_output [lindex $result 0]
set output_file [lindex $result 1] set output_file [lindex $result 1]
# Put the error message on the same line as the line number # gfortran error messages look like this:
# FIXME: Add a colon after line number # In file [name]:[line]
# Remove the line of source code with the error and #
# the number pointing to error # some code
regsub -all "\n\n\[^\n\]*\n *\[0-9\]*\n" $comp_output ": " comp_output # 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] return [list $comp_output $output_file]
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment