This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Committed, MMIX: Fix FUNCTION_ARG_CALLEE_COPIES.
- From: Hans-Peter Nilsson <hp at bitrange dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sun, 10 Nov 2002 02:39:23 -0500 (EST)
- Subject: Committed, MMIX: Fix FUNCTION_ARG_CALLEE_COPIES.
Committed. Fixes most C++ testsuite failures mentioned at
<URL:http://gcc.gnu.org/ml/gcc-testresults/2002-11/msg00142.html>.
* config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Define the same
as FUNCTION_ARG_PASS_BY_REFERENCE.
Index: mmix.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mmix/mmix.h,v
retrieving revision 1.45
diff -p -c -r1.45 mmix.h
*** mmix.h 26 Oct 2002 18:06:01 -0000 1.45
--- mmix.h 10 Nov 2002 07:25:38 -0000
*************** enum reg_class
*** 735,742 ****
/* This *sounds* good, but does not seem to be implemented correctly to
be a win; at least it wasn't in 2.7.2. FIXME: Check and perhaps
! replace with a big comment. */
! #define FUNCTION_ARG_CALLEE_COPIES(CUM, MODE, TYPE, NAMED) 1
typedef struct { int regs; int lib; } CUMULATIVE_ARGS;
--- 735,747 ----
/* This *sounds* good, but does not seem to be implemented correctly to
be a win; at least it wasn't in 2.7.2. FIXME: Check and perhaps
! replace with a big comment.
! The definition needs to match or be a subset of
! FUNCTION_ARG_PASS_BY_REFERENCE, since not all callers check that before
! usage. Watch lots of C++ test-cases fail if set to 1, for example
! g++.dg/init/byval1.C. */
! #define FUNCTION_ARG_CALLEE_COPIES(CUM, MODE, TYPE, NAMED) \
! mmix_function_arg_pass_by_reference (&(CUM), MODE, TYPE, NAMED)
typedef struct { int regs; int lib; } CUMULATIVE_ARGS;
brgds, H-P