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