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

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to