[cfe-commits] [Windows] Use thiscall as the default calling convention for class methods

John McCall rjmccall at apple.com
Mon Jul 9 10:46:04 PDT 2012

On Jul 9, 2012, at 6:52 AM, Timur Iskhodzhanov wrote:
> On Sat, Jul 7, 2012 at 10:44 AM, John McCall <rjmccall at apple.com> wrote:
>> On Jun 28, 2012, at 1:39 PM, Timur Iskhodzhanov wrote:
>>> Part one is attached - it propagates the "isInsance" boolean to the
>>> two places where it should be read afterwards [in part 2].
>> I didn't really like this approach, so I committed a different one as r159893.
>> Let me know if this helps.
> You've meant r159894.
> Yeah, I like your approach much more than mine :)
>>> The only logic change is around lib/CodeGen/CGCall.cpp:150.
>>> Without this change, the definition of `void __cdecl cdecl_method() {}`
>>> ends up using "thiscall" (and the call remains "cdecl" - ouch!).
>>> Probably it was a bug in the first place.
>> Let me know if this is still a problem arising in your second patch.
> It still is!
> See the FIXME in the attached patch.
> Other than that, the tests pass OK and it was easy to achieve this.

Aha, that's interesting.  Okay, I think the isVariadic bit should probably be
passed down to getDefaultMethodCallConv().  While you're at it, could
you rename that to getDefaultCXXMethodCallConv()?

Otherwise, this looks good.


More information about the cfe-commits mailing list