[PATCH] D89559: PR47372: Fix Lambda invoker calling conventions

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 22 09:00:04 PDT 2020


erichkeane added a comment.

Hmm... so I got distracted the last few days with a handful of small SEMA issues that I believe to be solved, so I'm going back to my codegen issues.

It seems that my problem is that we don't actually mangle calling-convention in a pointer types.  The result is:
64 bit: https://godbolt.org/z/nhnoG9
32 bit: https://godbolt.org/z/eK6jha

As you can see, the, only 32 bit-windows actually gets that right in that it differentiates between the two calling-conventions on the operator-func-ptr.  The result is the other 3 platforms all get the AST right, but don't generate separate implementations for them.  MY implementation is still wrong, since something else odd happens with lambdas on 32 bits, but I'd like to solve these problems as well.

I'll work on the Lambda issue to at least get windows 32 bit right (the only place that will have multiple operator-func-ptr in this case), but I'll eventually need to solve the issue with the differing calling conventions for the MSVC compat implementation that is a follow up to this. Any suggestions on where that could fit in?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D89559/new/

https://reviews.llvm.org/D89559



More information about the cfe-commits mailing list