[cfe-dev] AST: Splitting MangleContext?

Timur Iskhodzhanov timurrrr at google.com
Wed Oct 2 06:47:50 PDT 2013


http://llvm-reviews.chandlerc.com/D1807

2013/9/30 John McCall <rjmccall at apple.com>:
> On Sep 30, 2013, at 6:12 AM, Timur Iskhodzhanov <timurrrr at google.com> wrote:
>> 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?
>
> I think this is the right way to go.
>
> John.



More information about the cfe-dev mailing list