[cfe-dev] AST: Splitting MangleContext?

Timur Iskhodzhanov timurrrr at google.com
Mon Sep 30 06:12:15 PDT 2013


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



More information about the cfe-dev mailing list