On 11/16/2010 10:17 PM, Ian Lance Taylor wrote:
I don't know how we want to get there, but it seems to me that the place
we want to end up is with the target hooks defined to take an argument
of type struct cumulative_args * (or a better name if we can think of
one).

Actually, this doesn't work, because then different target vectors have
different types.  You might get away with it now, but LTO on a multi-target
compiler would fail.

Good point.

I think we should just
typedef void *cumulative_args_t;

and use that for our hooks.

Another area where we can do something much nicer when we move to C++.

This something could be something like target_i386::cumulative_args, implemented e.g. using the curiously recurring template pattern (http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern).

I think a multi-target executable would be just too ugly in C due to issues such as this. I don't think it's worthwhile to sacrifice type safety now, so a struct cumulative_args is preferrable.

Paolo

Reply via email to