On 4/22/20 8:48 AM, Iain Sandoe wrote:
Hi,

There is no PR for this, at present, but the implementation of
clang and GCC's handling of lambda capture object implicit parms
is currently different.  There is still some discussion about
'correct' interpretation of the standard - but in the short-term
it is probably best to have consistent implementations - even if
those subsequently turn out to be 'consistently wrong'.

Agreed, the std is at best ambigiuous in this area, we should aim for implementation agreement.

It would be good to comment as such in the code itself.

+           is_this_parameter (arg)
+           || (DECL_NAME (arg) && DECL_NAME (arg) == closure_identifier);

DECL_NAME (arg) == closure_identifier
is sufficient (it can't be NULL and == an ident :)


+             parm.this_ptr = false;
+             parm.lambda_cobj = is_this_parameter (arg)
+                                || (DECL_NAME (arg)
+                                    && DECL_NAME (arg) == closure_identifier);

and here.

Otherwise ok

nathan


--
Nathan Sidwell

Reply via email to