[cfe-dev] AST: Splitting MangleContext?

John McCall rjmccall at apple.com
Mon Sep 30 11:40:48 PDT 2013


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