https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109963

            Bug ID: 109963
           Summary: ABI: unexpected layout ordering of `this` pointer in
                    lambda capture
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: joker.eph at gmail dot com
  Target Milestone: ---

See the discussion here: https://github.com/itanium-cxx-abi/cxx-abi/issues/141

Most recent post at the moment was calling out a possible implementation bug in
GCC:

> If compilers aren't going to give lambdas internal linkage in these 
> situations, the ABI needs to define a layout for them. As far as I can tell, 
> Clang, GCC, and ICC are all trying to use the same layout rule: explicit 
> captures are added in declaration order, then implicit captures are added in 
> the source order of their ODR use in the lambda body. The exception which 
> causes this incompatibility is that GCC seems to order implicit this 
> arguments (and only implicit ones) after the formal call arguments. I would 
> argue that that's just a GCC bug, and the this argument should be ordered as 
> if it were written in source. @jicama, do you agree?

Reply via email to