[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.

John.



More information about the cfe-commits mailing list