The gcc.dg/darwin-longlong.c and gcc.dg/darwin-misaligned.c testcases are failing to build on the 3.4 branch after this patch: 2004-06-08 Richard Henderson <rth@redhat.com> PR middle-end/15228 * function.c (assign_parms): Always set_mem_align with the computed FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT. with this ICE (this example from darwin-longlong.c): /Users/regress/tbox/cvs-gcc/gcc/gcc/testsuite/gcc.dg/darwin-longlong.c: In function `msw': /Users/regress/tbox/cvs-gcc/gcc/gcc/testsuite/gcc.dg/darwin-longlong.c:14: internal compiler error: in assign_parms, at function.c:4804
Also fails on HEAD. Regression tester says only that it was introduced on the 3.4 branch between 2004-05-08T17:45:02Z and 2004-06-16T00:30:04Z.
Confirmed.
Retargeted at 3.4.1.
See the patch in 15941.
Nope the fix for PR 15941 did not fix this one.
The problem is that BITS_PER_WORD is 8 and PARM_BOUNDARY is 4 which is right for this ABI, there might be other cases like this too on other targets too.
Richard, status?
Created attachment 6597 [details] proposed patch Looks like a bit of code that should have been modified the last time that emit_group_store was improved. Certainly it handles the given test cases.
Thanks, Richard. Geoff, would you please boostrap/test this on Darwin to make sure that it solves the problem?
Yes this fixes the problem, see <http://gcc.gnu.org/ml/gcc/2004-06/msg01289.html>.
Let's get it checked in, then.
Subject: Bug 16026 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_4-branch Changes by: rth@gcc.gnu.org 2004-06-22 23:54:07 Modified files: gcc : ChangeLog function.c Log message: PR middle-end/16026 * function.c (assign_parms): Don't abort for overaligned PARALLEL. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.519&r2=2.2326.2.520 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/function.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.483.4.15&r2=1.483.4.16
Subject: Bug 16026 CVSROOT: /cvs/gcc Module name: gcc Changes by: rth@gcc.gnu.org 2004-06-22 23:54:46 Modified files: gcc : ChangeLog function.c Log message: PR middle-end/16026 * function.c (assign_parms): Don't abort for overaligned PARALLEL. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.4083&r2=2.4084 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/function.c.diff?cvsroot=gcc&r1=1.528&r2=1.529
Fixed.