Using a combined tree and Geoff K's regression tester script, a multitude of
failures have been introduced between LAST_UPDATED "Thu Feb 17 03:51:44 UTC
2005" and "Thu Feb 17 08:42:30 UTC 2005".  There's only one change in that
time-frame:

+ 2005-02-17  Jason Merrill  <[EMAIL PROTECTED]>
+
+       PR mudflap/19319, c++/19317
+       * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
+       slot explicit.
+

Here's an excerpt of the failures introduced:
Running
/home/hp/cvs_areas/combined/combined/gcc/testsuite/gcc.c-torture/execute/execute.exp
...
FAIL: gcc.c-torture/execute/20000402-1.c execution,  -O0
FAIL: gcc.c-torture/execute/20000511-1.c execution,  -O0
FAIL: gcc.c-torture/execute/20010222-1.c execution,  -O0
FAIL: gcc.c-torture/execute/20010222-1.c execution,  -O1
FAIL: gcc.c-torture/execute/20010222-1.c execution,  -O2
FAIL: gcc.c-torture/execute/20010222-1.c execution,  -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/20010222-1.c execution,  -O3 -g
FAIL: gcc.c-torture/execute/20010222-1.c execution,  -Os
FAIL: gcc.c-torture/execute/20020201-1.c execution,  -O0
FAIL: gcc.c-torture/execute/20020201-1.c execution,  -O1
FAIL: gcc.c-torture/execute/20020201-1.c execution,  -O2
FAIL: gcc.c-torture/execute/20020201-1.c execution,  -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/20020201-1.c execution,  -O3 -g
FAIL: gcc.c-torture/execute/20020201-1.c execution,  -Os
FAIL: gcc.c-torture/execute/20020904-1.c execution,  -O0
FAIL: gcc.c-torture/execute/20020904-1.c execution,  -O1
FAIL: gcc.c-torture/execute/20020904-1.c execution,  -O2
FAIL: gcc.c-torture/execute/20020904-1.c execution,  -Os
FAIL: gcc.c-torture/execute/20021119-1.c execution,  -O0
FAIL: gcc.c-torture/execute/20021119-1.c execution,  -O1
FAIL: gcc.c-torture/execute/20021119-1.c execution,  -O2
FAIL: gcc.c-torture/execute/20021119-1.c execution,  -Os
FAIL: gcc.c-torture/execute/20021120-2.c execution,  -O0
FAIL: gcc.c-torture/execute/20021120-2.c execution,  -O1
FAIL: gcc.c-torture/execute/20021120-2.c execution,  -O2
FAIL: gcc.c-torture/execute/20021120-2.c execution,  -Os
FAIL: gcc.c-torture/execute/20021120-3.c execution,  -O0
FAIL: gcc.c-torture/execute/20021120-3.c execution,  -O1
FAIL: gcc.c-torture/execute/20021120-3.c execution,  -O2
FAIL: gcc.c-torture/execute/20021120-3.c execution,  -Os
FAIL: gcc.c-torture/execute/20030117-1.c execution,  -O0
FAIL: gcc.c-torture/execute/20030117-1.c execution,  -O1
FAIL: gcc.c-torture/execute/20030117-1.c execution,  -O2
FAIL: gcc.c-torture/execute/20030117-1.c execution,  -Os
FAIL: gcc.c-torture/execute/20030128-1.c execution,  -O0
FAIL: gcc.c-torture/execute/20030128-1.c execution,  -O1
FAIL: gcc.c-torture/execute/20030128-1.c execution,  -O2
FAIL: gcc.c-torture/execute/20030128-1.c execution,  -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/20030128-1.c execution,  -O3 -g
FAIL: gcc.c-torture/execute/20030128-1.c execution,  -Os
FAIL: gcc.c-torture/execute/20040629-1.c execution,  -O0
FAIL: gcc.c-torture/execute/20040629-1.c execution,  -O1
FAIL: gcc.c-torture/execute/20040629-1.c execution,  -O2
FAIL: gcc.c-torture/execute/20040629-1.c execution,  -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/20040629-1.c execution,  -O3 -g
FAIL: gcc.c-torture/execute/20040629-1.c execution,  -Os
FAIL: gcc.c-torture/execute/20040705-1.c execution,  -O0
FAIL: gcc.c-torture/execute/20040705-1.c execution,  -O1
FAIL: gcc.c-torture/execute/20040705-1.c execution,  -O2
FAIL: gcc.c-torture/execute/20040705-1.c execution,  -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/20040705-1.c execution,  -O3 -g
FAIL: gcc.c-torture/execute/20040705-1.c execution,  -Os
FAIL: gcc.c-torture/execute/20040705-2.c execution,  -O0
FAIL: gcc.c-torture/execute/20040705-2.c execution,  -O1
FAIL: gcc.c-torture/execute/20040705-2.c execution,  -O2
FAIL: gcc.c-torture/execute/20040705-2.c execution,  -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/20040705-2.c execution,  -O3 -g
FAIL: gcc.c-torture/execute/20040705-2.c execution,  -Os
WARNING: program timed out.
FAIL: gcc.c-torture/execute/920501-2.c execution,  -O0
WARNING: program timed out.
FAIL: gcc.c-torture/execute/920501-2.c execution,  -O1
WARNING: program timed out.
FAIL: gcc.c-torture/execute/920501-2.c execution,  -O2
WARNING: program timed out.
FAIL: gcc.c-torture/execute/920501-2.c execution,  -O3 -fomit-frame-pointer
WARNING: program timed out.
FAIL: gcc.c-torture/execute/920501-2.c execution,  -O3 -fomit-frame-pointer
-funroll-loops
WARNING: program timed out.
FAIL: gcc.c-torture/execute/920501-2.c execution,  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions
WARNING: program timed out.
FAIL: gcc.c-torture/execute/920501-2.c execution,  -O3 -g

Messages in gcc.log indicate that all or most of the failures are due to
calls to abort ().

Simulator traces on the simple gcc.c-torture/execute/20010222-1.c  -O0 
show that the libgcc __Div is miscompiled.
I'm attaching preprocessed source for it.  Compile with -O2.
Note that do_31div is an aggregate-return function.

-- 
           Summary: [4.0 regression] miscompilation of division support
                    functions
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: tree-optimization
        AssignedTo: jason at redhat dot com
        ReportedBy: hp at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: cris-unknown-elf


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

Reply via email to