[cfe-commits] [PATCH] Virtual methods with mismatched calling conventions

Aaron Ballman aaron at aaronballman.com
Sun Dec 9 09:47:08 PST 2012


Thanks for the review -- I switched error to err and committed in r169705.

~Aaron

On Thu, Dec 6, 2012 at 4:52 PM, Richard Smith <richard at metafoo.co.uk> wrote:
> --- 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