This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gfortran, testsuite] Don't give excess errors for multiple locion the same line


Steven Bosscher wrote:
> Looks interesting and very useful.  My regexp magic is not very
> good, so I don't want to comment on that ;-)

Michael Chamberlain provided me off list with some insight into the wonders of
TCL string syntax.  I'm committing this as obvious after making sure that the
testsuite still functions correctly.

- Tobi

Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/ChangeLog,v
retrieving revision 1.5062
diff -u -p -r1.5062 ChangeLog
--- ChangeLog   21 Feb 2005 14:55:34 -0000      1.5062
+++ ChangeLog   21 Feb 2005 16:24:48 -0000
@@ -1,4 +1,8 @@
-2005-01-31  Jeff Law  <law@redhat.com>
+2005-02-21  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * lib/gfortran-dg.exp (gfortran-dg-test): Split long regexps.
+
+2005-02-21  Jeff Law  <law@redhat.com>

        * gcc.dg/tree-ssa/20041122-1.c: New test for missing optimization.

Index: lib/gfortran-dg.exp
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/lib/gfortran-dg.exp,v
retrieving revision 1.4
diff -u -p -r1.4 gfortran-dg.exp
--- lib/gfortran-dg.exp 21 Feb 2005 13:03:06 -0000      1.4
+++ lib/gfortran-dg.exp 21 Feb 2005 16:24:48 -0000
@@ -55,8 +55,17 @@ proc gfortran-dg-test { prog do_what ext
     #  [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
+    #
+    # Note that these regexps only make sense in the combinations used below.
+    # Note also that is imperative that we first deal with the form with
+    # two loci.
+    set locus_regexp " In file (\[^\n\]*)\n\n\[^\n\]*\n\[^\n\]*\n"
+    set diag_regexp "(\[^\n\]*)\n"
+
+    set two_loci "$locus_regexp$locus_regexp$diag_regexp"
+    set single_locus "$locus_regexp$diag_regexp"
+    regsub -all $two_loci $comp_output "\\1: \\3\n\\2: \\3\n" comp_output
+    regsub -all $single_locus $comp_output "\\1: \\2\n" comp_output

     return [list $comp_output $output_file]
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]