Re: Updated^3: RFA: Fix middle-end/46500 (void * encapsulated)

2011-06-16 Thread Bernd Schmidt
Ok, much better.

+  cumulative_args_t dummy;
+
+  return m32r_pass_by_reference (dummy, TYPE_MODE (type), type, false);

Please initialize the variable.

Otherwise I think it's OK. Thanks!


Bernd


Updated^3: RFA: Fix middle-end/46500 (void * encapsulated)

2011-06-15 Thread Joern Rennecke

Quoting Bernd Schmidt :


Some of the formatting changes to avoid long lines are unfortunate (and
it's not done consistently); I think I'd prefer to add temporary
variables to hold the return value of pack_cumulative_args and
get_cumulative_args.


With the cumulative_args_t values available, it was more natural to also
convert emit_call_1 and initialize_argument_information, so I did that.

However, pass_by_reference and reference_callee_copied are called in a number
of places from target ports, so I've left this for a later round of
patches and/or discussion.

Likewise, it becomes a bit clearer what we need from a hook  
replaceemnt of INIT_CUMULATIVE_ARGS, which we can discuss later.



I think it would be best just to minimize changes in backends as much as
possible by using the following pattern everywhere:

 static void
-ix86_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode,
+ix86_function_arg_advance (cumulative_args_t cum_v, enum machine_mode mode,
   const_tree type, bool named)
 {
+  CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v);

I.e., avoid changes such as the one in mn10300_function_arg_advance.


I've employed this pattern now in all the target hook implementation heads
except where there was a only a trivial single substitution that caused
little or no reformatting.


Also,

-   if (iq2000_function_arg (&temp, mode, type, named) != 0)
+   if (iq2000_function_arg (pack_cumulative_args (&temp), mode,
type, named)  != 0)

Extra tab character before !=.


Actually, it was a missing carriage return.


46500-patch-20110615.gz
Description: GNU Zip compressed data