[cfe-commits] [PATCH] Virtual methods with mismatched calling conventions
Richard Smith
richard at metafoo.co.uk
Thu Dec 6 13:52:51 PST 2012
--- include/clang/Basic/DiagnosticSemaKinds.td (revision 169073)
+++ include/clang/Basic/DiagnosticSemaKinds.td (working copy)
@@ -1110,6 +1110,10 @@
"than the function it overrides}1,2">;
def note_overridden_virtual_function : Note<
"overridden virtual function is here">;
+def error_conflicting_overriding_cc_attributes : Error<
+ "virtual function %0 has different calling convention attributes "
+ "%diff{($) than the function it overrides (which has calling convention $)|"
+ "than the function it overrides}1,2">;
Should be err_...
Other than that, this LGTM.
On Thu, Dec 6, 2012 at 7:07 AM, Aaron Ballman <aaron at aaronballman.com> wrote:
> Ping?
>
> On Sat, Dec 1, 2012 at 1:36 PM, Aaron Ballman <aaron at aaronballman.com> wrote:
>> This patch addresses PR14339 so that you are no longer able to
>> override a member function with mismatched calling conventions. Eg)
>>
>> class E {
>> public:
>> virtual void __attribute__((stdcall)) g();
>> };
>>
>> class F : public E {
>> public:
>> void g();
>> };
>>
>> In order to accomplish this, the patch adds some functionality to the
>> TargetInfo subclasses so they can decide the default calling
>> convention based off the type of function it is to be attached to,
>> when that information is available.
>>
>> Comments and suggestions welcome!
>>
>> ~Aaron
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list