On 04/04/2013 08:48, Kai Tietz wrote: Hi Kai,
> That change is intentional and would be called __thiscall. To mix > stdcall and regparam is no more supported AFAIK. Why are stdcall and regparam not allowed together any more? They seem entirely orthogonal to me, and the overall result is effectively to place an arbitrary limit of 1 (the hidden this pointer) on the number of parameters that can be passed in registers. If I change __stdcall to __thiscall in the example, I get a clear error message: > bar.h:3:57: error: regparam and thiscall attributes are not compatible However in the original case the error message about "ambiguates old declaration" is unclear: a) it doesn't say what the problem is, b) it goes away if you repeat the regparm attribute on the function definition and appears to compile correctly, generating what looks like valid assembly to me. cheers, DaveK