Hello!

This patch addresses the compatibility issue between explicitly specified
default calling conventions and implicit ones in overload resolution.  As
of now, such implicit conversions are only known in Microsoft ABI.  The
corresponding CodeGen already knows about these implicit defaults, so the
conversion kind could be just NoOp.

The patch covers:
* pointers to free functions (__cdecl by default);
* references to free functions;
* pointers to static member functions and variadic member functions
(__cdecl by default);
* pointers to non-static non-variadic member functions (__thiscall by
default);
* simultaneous calling convention adjustment and base-to-derived implicit
conversion for member functions.

The patch does not cover function templates, although the approach to this
is exactly the same as for PR15291.

I suppose functions for determining calling convention compatibility could
be moved somewhere in TargetCXXABI if needed in other places.

Please, review!
Suggestions are welcome.

--
Alex

Attachment: 13457.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to