The mawk test suite doesn't pass when I build mawk with gcc 4.3 at
-O3 on mips.  I cannot give you an isolated testcase but I've
narrowed it down so that someone with more experience can take a
look.  I hope one of the two of you (David, Richard) can take a look.

Get mawk from upstream or Debian and compile it normally.  If you do:

cp mawk test/mawk
cd test
./mawk -f ../examples/decl.awk mawktest.dat | cmp -s - decl-awk.out ; echo $?
cd ..

you'll see that it works.

Now do:

cd rexp
/usr/lib/gcc-snapshot/bin/gcc -g -Wall -O3 -DMAWK -I.. -c -o rexp0.o rexp0.c
cd ..
rm mawk
make mawk

and run the test above again and you'll see it fails.  It fails because
the whitespace is different, e.g.
-hash: function returning unsigned (extern)
+hash: function returning  unsigned  (extern)

OK, we so know that something in rexp0.c doesn't work at -O3.
Unfortunately at this point I don't have enough experience to
investigate further.  I found out one more thing, though.  The
testsuite works again (when rexp0.c is compiled with -O3) if you
apply the following patch:

+++ rexp/rexp0.c     2007-12-07 18:54:03.000000000 +0000
@@ -68,7 +68,7 @@
 /* static functions */
 int PROTO(do_str, (int, char **, MACHINE *)) ;
 int PROTO(do_class, (char **, MACHINE *)) ;
-static int PROTO(escape, (char **)) ;
+int PROTO(escape, (char **)) ;
 static BV *PROTO(store_bvp, (BV *)) ;
 static int PROTO(ctohex, (int)) ;

@@ -576,7 +576,7 @@
   on entry *s -> at the character after the slash
  *-------------------*/

-static int
+int
 escape(start_p)
    char **start_p ;
 {

I hope one of you can investigate.  I'm not 100% sure this is a bug
in GCC rather than in mawk, but mawk works fine on x86_64 when
compiled with -O3.  I've only seen the testsuite failure on MIPS so
far.


-- 
           Summary: [4.3 Regression] Possible miscompilation on MIPS
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tbm at cyrius dot com
GCC target triplet: mips-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34415

Reply via email to