From: Tobias Schlüter Date: Mon, 21 Feb 2005 13:03:06 +0000 (+0100) Subject: do_iterator: Split loop, markup all lines for which an error locus is printed. X-Git-Tag: releases/gcc-4.0.0~702 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=da7fdff6e1c40d02996d462bd978774366a860b8;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 68594ec18b4f..0feb30b148bc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2005-02-20 Tobias Schl"uter + + * 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 PR tree-optimization/19951 diff --git a/gcc/testsuite/gfortran.dg/do_iterator.f90 b/gcc/testsuite/gfortran.dg/do_iterator.f90 index 982568e3909b..0e11aa23339a 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 7485da8bb070..b696b0c27579 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 8fb661f7c22c..dbced6e4c665 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 2387403030b1..d6887b050e29 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] }