[cfe-dev] AST: Splitting MangleContext?

Reid Kleckner rnk at google.com
Mon Sep 30 11:42:48 PDT 2013


Oh, presumably to keep the data members out of the header?


On Mon, Sep 30, 2013 at 11:42 AM, Reid Kleckner <rnk at google.com> wrote:

> I was thinking along the same lines, but why do you need *Impl classes?
>
>
> On Mon, Sep 30, 2013 at 6:12 AM, Timur Iskhodzhanov <timurrrr at google.com>wrote:
>
>> Hi,
>>
>> AST/MangleContext is becoming increasingly ABI-aware and less "pure"
>> over time, e.g. now it has notions of VTTs, VFTables, VBTables,
>> ItaniumThreadLocalWrapper etc.
>> ABI-specific implementations like ItaniumMangleContext and
>> MicrosoftMangleContext are privately defined in their own TUs.
>>
>> I think it's time to split the MangleContext interface and expose the
>> ABI-specific methods in public ItaniumMangleContext and
>> MicrosoftMangleContext interfaces.
>>
>> Probably a way to go is to
>> a) rename old {Itanium,Microsoft}MangleContext to
>> {Itanium,Microsoft}MangleContextImpl
>> b) define new {Itanium,Microsoft}MangleContext interfaces in
>> AST/Mangle.h, inheriting from MangleContext
>> c) Move the ABI-specific virtual method declarations to the respective
>> interfaces
>> d) Inherit {Itanium,Microsoft}MangleContextImpl from
>> {Itanium,Microsoft}MangleContext
>> e) Make create{Itanium,Microsoft}MangleContext static methods of
>> {Itanium,Microsoft}MangleContext.
>>
>> Are there any objections or suggestions?
>>
>> --
>> Timur
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130930/e1d8546d/attachment.html>


More information about the cfe-dev mailing list