This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C++ order of evaluation of operands, arguments


On 23/11/15 23:01, Jason Merrill wrote:
> There's a proposal working through the C++ committee to define the order 
> of evaluation of subexpressions that previously had unspecified ordering:
> 
> http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2015/p0145r0.pdf
> 
> I agree with much of this, but was concerned about the proposal to 
> define order of evaluation of function arguments as left-to-right, since 
> GCC does right-to-left on PUSH_ARGS_REVERSED targets, including x86_64.
> 
> Any thoughts?

Not about PUSH_ARGS_REVERSED targets, but my two-penn'orth:

The proposal seems to be a bit of a minefield.  This one:

a(b, c, d)

is a bit counter-intuitive.  I wouldn't expect a to be evaluated before
the arg list.  I wonder how many C++ programmers would.

In addition, I don't see anything about C compatibility here.  It
would be very confusing, to say the least, if this were to be defined
in C++ but not C.

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]