[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