* function.c has unprotected call to FUNCTION_ARG_PASS_BY_REFERENCE
@ 2004-07-08 0:10 Alexandre Oliva
2004-07-08 1:06 ` Richard Henderson
0 siblings, 1 reply; 5+ messages in thread
From: Alexandre Oliva @ 2004-07-08 0:10 UTC (permalink / raw)
To: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 262 bytes --]
... unlike the call presumably copied from calls.c. Machines that
don't have FUNCTION_ARG_PASS_BY_REFERENCE lose. This patch fixes it.
Installed as obviously correct.
Hmm... Maybe it should be defined to 0 in defaults.h? Ok to make
this additional change?
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: function-arg-by-ref-if-defined.patch --]
[-- Type: text/x-patch, Size: 996 bytes --]
Index: gcc/ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
* function.c (assign_parm_find_data_types): Call
FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
Index: gcc/function.c
===================================================================
RCS file: /cvs/uberbaum/gcc/function.c,v
retrieving revision 1.547
diff -u -p -r1.547 function.c
--- gcc/function.c 7 Jul 2004 18:40:02 -0000 1.547
+++ gcc/function.c 7 Jul 2004 22:59:37 -0000
@@ -2246,8 +2246,11 @@ assign_parm_find_data_types (struct assi
the machine requires these objects be passed that way. */
if (CONTAINS_PLACEHOLDER_P (TYPE_SIZE (passed_type))
|| TREE_ADDRESSABLE (passed_type)
+#ifdef FUNCTION_ARG_PASS_BY_REFERENCE
|| FUNCTION_ARG_PASS_BY_REFERENCE (all->args_so_far, passed_mode,
- passed_type, data->named_arg))
+ passed_type, data->named_arg)
+#endif
+ )
{
passed_type = nominal_type = build_pointer_type (passed_type);
data->passed_pointer = true;
[-- Attachment #3: Type: text/plain, Size: 188 bytes --]
--
Alexandre Oliva http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: function.c has unprotected call to FUNCTION_ARG_PASS_BY_REFERENCE
2004-07-08 0:10 function.c has unprotected call to FUNCTION_ARG_PASS_BY_REFERENCE Alexandre Oliva
@ 2004-07-08 1:06 ` Richard Henderson
2004-07-08 6:57 ` Alexandre Oliva
0 siblings, 1 reply; 5+ messages in thread
From: Richard Henderson @ 2004-07-08 1:06 UTC (permalink / raw)
To: Alexandre Oliva; +Cc: gcc-patches
On Wed, Jul 07, 2004 at 08:02:56PM -0300, Alexandre Oliva wrote:
> Hmm... Maybe it should be defined to 0 in defaults.h?
I had planned to put this in expr.h with the other related macros.
r~
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: function.c has unprotected call to FUNCTION_ARG_PASS_BY_REFERENCE
2004-07-08 1:06 ` Richard Henderson
@ 2004-07-08 6:57 ` Alexandre Oliva
2004-07-08 7:17 ` Richard Henderson
0 siblings, 1 reply; 5+ messages in thread
From: Alexandre Oliva @ 2004-07-08 6:57 UTC (permalink / raw)
To: Richard Henderson; +Cc: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 495 bytes --]
On Jul 7, 2004, Richard Henderson <rth@redhat.com> wrote:
> On Wed, Jul 07, 2004 at 08:02:56PM -0300, Alexandre Oliva wrote:
>> Hmm... Maybe it should be defined to 0 in defaults.h?
> I had planned to put this in expr.h with the other related macros.
I went ahead and handled a few other macros that looked easy. Then I
commented them out from i386.h and verified it built. Then I put them
back in and started a bootstrap. Will have results in a while. Ok to
install if it bootstraps?
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: gcc-expr-func-macro-defaults.patch --]
[-- Type: text/x-patch, Size: 6707 bytes --]
Index: gcc/ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
* expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
(FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
(FUNCTION_ARG_CALLEE_COPIES): Likewise.
* calls.c: Remove ifdefs of macros above.
* functions.c: Likewise.
* expr.c: Likewise.
Index: gcc/calls.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/calls.c,v
retrieving revision 1.344
diff -u -p -r1.344 calls.c
--- gcc/calls.c 8 Jul 2004 05:58:35 -0000 1.344
+++ gcc/calls.c 8 Jul 2004 06:26:35 -0000
@@ -975,16 +975,13 @@ initialize_argument_information (int num
/* See if this argument should be passed by invisible reference. */
if (CONTAINS_PLACEHOLDER_P (TYPE_SIZE (type))
|| TREE_ADDRESSABLE (type)
-#ifdef FUNCTION_ARG_PASS_BY_REFERENCE
|| FUNCTION_ARG_PASS_BY_REFERENCE (*args_so_far, TYPE_MODE (type),
type, argpos < n_named_args)
-#endif
)
{
/* If we're compiling a thunk, pass through invisible
references instead of making a copy. */
if (call_from_thunk_p
-#ifdef FUNCTION_ARG_CALLEE_COPIES
|| (FUNCTION_ARG_CALLEE_COPIES (*args_so_far, TYPE_MODE (type),
type, argpos < n_named_args)
/* If it's in a register, we must make a copy of it too. */
@@ -992,7 +989,6 @@ initialize_argument_information (int num
&& !(TREE_CODE (args[i].tree_value) == VAR_DECL
&& REG_P (DECL_RTL (args[i].tree_value)))
&& ! TREE_ADDRESSABLE (type))
-#endif
)
{
/* C++ uses a TARGET_EXPR to indicate that we want to make a
@@ -1095,12 +1091,10 @@ initialize_argument_information (int num
args[i].tail_call_reg = args[i].reg;
#endif
-#ifdef FUNCTION_ARG_PARTIAL_NREGS
if (args[i].reg)
args[i].partial
= FUNCTION_ARG_PARTIAL_NREGS (*args_so_far, mode, type,
argpos < n_named_args);
-#endif
args[i].pass_on_stack = MUST_PASS_IN_STACK (mode, type);
@@ -3541,10 +3535,8 @@ emit_library_call_value_1 (int retval, r
argvec[count].partial = 0;
argvec[count].reg = FUNCTION_ARG (args_so_far, Pmode, NULL_TREE, 1);
-#ifdef FUNCTION_ARG_PARTIAL_NREGS
if (FUNCTION_ARG_PARTIAL_NREGS (args_so_far, Pmode, NULL_TREE, 1))
abort ();
-#endif
locate_and_pad_parm (Pmode, NULL_TREE,
#ifdef STACK_PARMS_IN_REG_PARM_AREA
@@ -3582,15 +3574,12 @@ emit_library_call_value_1 (int retval, r
&& ! (CONSTANT_P (val) && LEGITIMATE_CONSTANT_P (val)))
val = force_operand (val, NULL_RTX);
-#ifdef FUNCTION_ARG_PASS_BY_REFERENCE
if (FUNCTION_ARG_PASS_BY_REFERENCE (args_so_far, mode, NULL_TREE, 1))
{
rtx slot;
int must_copy = 1
-#ifdef FUNCTION_ARG_CALLEE_COPIES
&& ! FUNCTION_ARG_CALLEE_COPIES (args_so_far, mode,
NULL_TREE, 1)
-#endif
;
/* loop.c won't look at CALL_INSN_FUNCTION_USAGE of const/pure
@@ -3643,19 +3632,14 @@ emit_library_call_value_1 (int retval, r
mode = Pmode;
val = force_operand (XEXP (slot, 0), NULL_RTX);
}
-#endif
argvec[count].value = val;
argvec[count].mode = mode;
argvec[count].reg = FUNCTION_ARG (args_so_far, mode, NULL_TREE, 1);
-#ifdef FUNCTION_ARG_PARTIAL_NREGS
argvec[count].partial
= FUNCTION_ARG_PARTIAL_NREGS (args_so_far, mode, NULL_TREE, 1);
-#else
- argvec[count].partial = 0;
-#endif
locate_and_pad_parm (mode, NULL_TREE,
#ifdef STACK_PARMS_IN_REG_PARM_AREA
Index: gcc/expr.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expr.c,v
retrieving revision 1.672
diff -u -p -r1.672 expr.c
--- gcc/expr.c 7 Jul 2004 21:26:28 -0000 1.672
+++ gcc/expr.c 8 Jul 2004 06:26:42 -0000
@@ -1423,11 +1423,9 @@ block_move_libcall_safe_for_call_parm (v
rtx tmp = FUNCTION_ARG (args_so_far, mode, NULL_TREE, 1);
if (!tmp || !REG_P (tmp))
return false;
-#ifdef FUNCTION_ARG_PARTIAL_NREGS
if (FUNCTION_ARG_PARTIAL_NREGS (args_so_far, mode,
NULL_TREE, 1))
return false;
-#endif
FUNCTION_ARG_ADVANCE (args_so_far, mode, NULL_TREE, 1);
}
}
Index: gcc/expr.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expr.h,v
retrieving revision 1.160
diff -u -p -r1.160 expr.h
--- gcc/expr.h 7 Jul 2004 19:23:58 -0000 1.160
+++ gcc/expr.h 8 Jul 2004 06:26:43 -0000
@@ -203,6 +203,18 @@ do { \
#define FUNCTION_ARG_BOUNDARY(MODE, TYPE) PARM_BOUNDARY
#endif
+#ifndef FUNCTION_ARG_PARTIAL_NREGS
+#define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) 0
+#endif
+
+#ifndef FUNCTION_ARG_PASS_BY_REFERENCE
+#define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED) 0
+#endif
+
+#ifndef FUNCTION_ARG_CALLEE_COPIES
+#define FUNCTION_ARG_CALLEE_COPIES(CUM, MODE, TYPE, NAMED) 0
+#endif
+
tree split_complex_types (tree);
tree split_complex_values (tree);
Index: gcc/function.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.c,v
retrieving revision 1.548
diff -u -p -r1.548 function.c
--- gcc/function.c 7 Jul 2004 23:02:22 -0000 1.548
+++ gcc/function.c 8 Jul 2004 06:26:47 -0000
@@ -2246,10 +2246,8 @@ assign_parm_find_data_types (struct assi
the machine requires these objects be passed that way. */
if (CONTAINS_PLACEHOLDER_P (TYPE_SIZE (passed_type))
|| TREE_ADDRESSABLE (passed_type)
-#ifdef FUNCTION_ARG_PASS_BY_REFERENCE
|| FUNCTION_ARG_PASS_BY_REFERENCE (all->args_so_far, passed_mode,
passed_type, data->named_arg)
-#endif
)
{
passed_type = nominal_type = build_pointer_type (passed_type);
@@ -2366,7 +2364,6 @@ assign_parm_find_entry_rtl (struct assig
if (MUST_PASS_IN_STACK (data->promoted_mode, data->passed_type))
entry_parm = 0;
-#ifdef FUNCTION_ARG_PARTIAL_NREGS
if (entry_parm)
{
int partial;
@@ -2409,7 +2406,6 @@ assign_parm_find_entry_rtl (struct assig
all->extra_pretend_bytes = all->pretend_args_size;
}
}
-#endif
locate_and_pad_parm (data->promoted_mode, data->passed_type, in_regs,
entry_parm ? data->partial : 0, current_function_decl,
@@ -2854,7 +2850,6 @@ assign_parm_setup_reg (struct assign_par
data->stack_parm = NULL;
}
-#ifdef FUNCTION_ARG_CALLEE_COPIES
/* If we are passed an arg by reference and it is our responsibility
to make a copy, do it now.
PASSED_TYPE and PASSED mode now refer to the pointer, not the
@@ -2899,7 +2894,6 @@ assign_parm_setup_reg (struct assign_par
did_conversion = true;
}
}
-#endif /* FUNCTION_ARG_CALLEE_COPIES */
/* Mark the register as eliminable if we did no conversion and it was
copied from memory at a fixed offset, and the arg pointer was not
[-- Attachment #3: Type: text/plain, Size: 188 bytes --]
--
Alexandre Oliva http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: function.c has unprotected call to FUNCTION_ARG_PASS_BY_REFERENCE
2004-07-08 6:57 ` Alexandre Oliva
@ 2004-07-08 7:17 ` Richard Henderson
2004-07-08 18:33 ` Alexandre Oliva
0 siblings, 1 reply; 5+ messages in thread
From: Richard Henderson @ 2004-07-08 7:17 UTC (permalink / raw)
To: Alexandre Oliva; +Cc: gcc-patches
On Thu, Jul 08, 2004 at 03:35:29AM -0300, Alexandre Oliva wrote:
> * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
> (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
> (FUNCTION_ARG_CALLEE_COPIES): Likewise.
> * calls.c: Remove ifdefs of macros above.
> * functions.c: Likewise.
> * expr.c: Likewise.
Ok.
> int must_copy = 1
> -#ifdef FUNCTION_ARG_CALLEE_COPIES
> && ! FUNCTION_ARG_CALLEE_COPIES (args_so_far, mode,
> NULL_TREE, 1)
> -#endif
Tidy up the "1 && foo" ?
r~
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: function.c has unprotected call to FUNCTION_ARG_PASS_BY_REFERENCE
2004-07-08 7:17 ` Richard Henderson
@ 2004-07-08 18:33 ` Alexandre Oliva
0 siblings, 0 replies; 5+ messages in thread
From: Alexandre Oliva @ 2004-07-08 18:33 UTC (permalink / raw)
To: Richard Henderson; +Cc: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 286 bytes --]
On Jul 8, 2004, Richard Henderson <rth@redhat.com> wrote:
>> int must_copy = 1
>> -#ifdef FUNCTION_ARG_CALLEE_COPIES
>> && ! FUNCTION_ARG_CALLEE_COPIES (args_so_far, mode,
>> NULL_TREE, 1)
>> -#endif
> Tidy up the "1 && foo" ?
Ah, good catch, thanks. Here's what I'm checking in.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: gcc-expr-func-macro-defaults.patch --]
[-- Type: text/x-patch, Size: 6871 bytes --]
Index: gcc/ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
* expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
(FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
(FUNCTION_ARG_CALLEE_COPIES): Likewise.
* calls.c: Remove ifdefs of macros above.
* functions.c: Likewise.
* expr.c: Likewise.
Index: gcc/expr.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expr.h,v
retrieving revision 1.160
diff -u -p -r1.160 expr.h
--- gcc/expr.h 7 Jul 2004 19:23:58 -0000 1.160
+++ gcc/expr.h 8 Jul 2004 16:53:14 -0000
@@ -203,6 +203,18 @@ do { \
#define FUNCTION_ARG_BOUNDARY(MODE, TYPE) PARM_BOUNDARY
#endif
+#ifndef FUNCTION_ARG_PARTIAL_NREGS
+#define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) 0
+#endif
+
+#ifndef FUNCTION_ARG_PASS_BY_REFERENCE
+#define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED) 0
+#endif
+
+#ifndef FUNCTION_ARG_CALLEE_COPIES
+#define FUNCTION_ARG_CALLEE_COPIES(CUM, MODE, TYPE, NAMED) 0
+#endif
+
tree split_complex_types (tree);
tree split_complex_values (tree);
Index: gcc/expr.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expr.c,v
retrieving revision 1.674
diff -u -p -r1.674 expr.c
--- gcc/expr.c 8 Jul 2004 08:44:04 -0000 1.674
+++ gcc/expr.c 8 Jul 2004 16:53:39 -0000
@@ -1424,11 +1424,9 @@ block_move_libcall_safe_for_call_parm (v
rtx tmp = FUNCTION_ARG (args_so_far, mode, NULL_TREE, 1);
if (!tmp || !REG_P (tmp))
return false;
-#ifdef FUNCTION_ARG_PARTIAL_NREGS
if (FUNCTION_ARG_PARTIAL_NREGS (args_so_far, mode,
NULL_TREE, 1))
return false;
-#endif
FUNCTION_ARG_ADVANCE (args_so_far, mode, NULL_TREE, 1);
}
}
Index: gcc/calls.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/calls.c,v
retrieving revision 1.345
diff -u -p -r1.345 calls.c
--- gcc/calls.c 8 Jul 2004 07:45:32 -0000 1.345
+++ gcc/calls.c 8 Jul 2004 16:53:48 -0000
@@ -975,16 +975,13 @@ initialize_argument_information (int num
/* See if this argument should be passed by invisible reference. */
if (CONTAINS_PLACEHOLDER_P (TYPE_SIZE (type))
|| TREE_ADDRESSABLE (type)
-#ifdef FUNCTION_ARG_PASS_BY_REFERENCE
|| FUNCTION_ARG_PASS_BY_REFERENCE (*args_so_far, TYPE_MODE (type),
type, argpos < n_named_args)
-#endif
)
{
/* If we're compiling a thunk, pass through invisible
references instead of making a copy. */
if (call_from_thunk_p
-#ifdef FUNCTION_ARG_CALLEE_COPIES
|| (FUNCTION_ARG_CALLEE_COPIES (*args_so_far, TYPE_MODE (type),
type, argpos < n_named_args)
/* If it's in a register, we must make a copy of it too. */
@@ -992,7 +989,6 @@ initialize_argument_information (int num
&& !(TREE_CODE (args[i].tree_value) == VAR_DECL
&& REG_P (DECL_RTL (args[i].tree_value)))
&& ! TREE_ADDRESSABLE (type))
-#endif
)
{
/* C++ uses a TARGET_EXPR to indicate that we want to make a
@@ -1095,12 +1091,10 @@ initialize_argument_information (int num
args[i].tail_call_reg = args[i].reg;
#endif
-#ifdef FUNCTION_ARG_PARTIAL_NREGS
if (args[i].reg)
args[i].partial
= FUNCTION_ARG_PARTIAL_NREGS (*args_so_far, mode, type,
argpos < n_named_args);
-#endif
args[i].pass_on_stack = MUST_PASS_IN_STACK (mode, type);
@@ -3525,10 +3519,8 @@ emit_library_call_value_1 (int retval, r
argvec[count].partial = 0;
argvec[count].reg = FUNCTION_ARG (args_so_far, Pmode, NULL_TREE, 1);
-#ifdef FUNCTION_ARG_PARTIAL_NREGS
if (FUNCTION_ARG_PARTIAL_NREGS (args_so_far, Pmode, NULL_TREE, 1))
abort ();
-#endif
locate_and_pad_parm (Pmode, NULL_TREE,
#ifdef STACK_PARMS_IN_REG_PARM_AREA
@@ -3566,16 +3558,11 @@ emit_library_call_value_1 (int retval, r
&& ! (CONSTANT_P (val) && LEGITIMATE_CONSTANT_P (val)))
val = force_operand (val, NULL_RTX);
-#ifdef FUNCTION_ARG_PASS_BY_REFERENCE
if (FUNCTION_ARG_PASS_BY_REFERENCE (args_so_far, mode, NULL_TREE, 1))
{
rtx slot;
- int must_copy = 1
-#ifdef FUNCTION_ARG_CALLEE_COPIES
- && ! FUNCTION_ARG_CALLEE_COPIES (args_so_far, mode,
- NULL_TREE, 1)
-#endif
- ;
+ int must_copy = ! FUNCTION_ARG_CALLEE_COPIES (args_so_far, mode,
+ NULL_TREE, 1);
/* loop.c won't look at CALL_INSN_FUNCTION_USAGE of const/pure
functions, so we have to pretend this isn't such a function. */
@@ -3627,19 +3614,14 @@ emit_library_call_value_1 (int retval, r
mode = Pmode;
val = force_operand (XEXP (slot, 0), NULL_RTX);
}
-#endif
argvec[count].value = val;
argvec[count].mode = mode;
argvec[count].reg = FUNCTION_ARG (args_so_far, mode, NULL_TREE, 1);
-#ifdef FUNCTION_ARG_PARTIAL_NREGS
argvec[count].partial
= FUNCTION_ARG_PARTIAL_NREGS (args_so_far, mode, NULL_TREE, 1);
-#else
- argvec[count].partial = 0;
-#endif
locate_and_pad_parm (mode, NULL_TREE,
#ifdef STACK_PARMS_IN_REG_PARM_AREA
Index: gcc/function.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.c,v
retrieving revision 1.550
diff -u -p -r1.550 function.c
--- gcc/function.c 8 Jul 2004 07:45:39 -0000 1.550
+++ gcc/function.c 8 Jul 2004 16:54:07 -0000
@@ -2241,10 +2241,8 @@ assign_parm_find_data_types (struct assi
the machine requires these objects be passed that way. */
if (CONTAINS_PLACEHOLDER_P (TYPE_SIZE (passed_type))
|| TREE_ADDRESSABLE (passed_type)
-#ifdef FUNCTION_ARG_PASS_BY_REFERENCE
|| FUNCTION_ARG_PASS_BY_REFERENCE (all->args_so_far, passed_mode,
passed_type, data->named_arg)
-#endif
)
{
passed_type = nominal_type = build_pointer_type (passed_type);
@@ -2361,7 +2359,6 @@ assign_parm_find_entry_rtl (struct assig
if (MUST_PASS_IN_STACK (data->promoted_mode, data->passed_type))
entry_parm = 0;
-#ifdef FUNCTION_ARG_PARTIAL_NREGS
if (entry_parm)
{
int partial;
@@ -2404,7 +2401,6 @@ assign_parm_find_entry_rtl (struct assig
all->extra_pretend_bytes = all->pretend_args_size;
}
}
-#endif
locate_and_pad_parm (data->promoted_mode, data->passed_type, in_regs,
entry_parm ? data->partial : 0, current_function_decl,
@@ -2849,7 +2845,6 @@ assign_parm_setup_reg (struct assign_par
data->stack_parm = NULL;
}
-#ifdef FUNCTION_ARG_CALLEE_COPIES
/* If we are passed an arg by reference and it is our responsibility
to make a copy, do it now.
PASSED_TYPE and PASSED mode now refer to the pointer, not the
@@ -2894,7 +2889,6 @@ assign_parm_setup_reg (struct assign_par
did_conversion = true;
}
}
-#endif /* FUNCTION_ARG_CALLEE_COPIES */
/* Mark the register as eliminable if we did no conversion and it was
copied from memory at a fixed offset, and the arg pointer was not
[-- Attachment #3: Type: text/plain, Size: 188 bytes --]
--
Alexandre Oliva http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2004-07-08 16:58 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-07-08 0:10 function.c has unprotected call to FUNCTION_ARG_PASS_BY_REFERENCE Alexandre Oliva
2004-07-08 1:06 ` Richard Henderson
2004-07-08 6:57 ` Alexandre Oliva
2004-07-08 7:17 ` Richard Henderson
2004-07-08 18:33 ` Alexandre Oliva
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).