On Wed, Jul 31, 2013 at 10:16 PM, Trevor Saunders <tsaund...@mozilla.com> wrote: > On Wed, Jul 31, 2013 at 10:02:29PM -0500, Gabriel Dos Reis wrote: >> On Wed, Jul 31, 2013 at 8:14 PM, Trevor Saunders <tsaund...@mozilla.com> >> wrote: >> > bootstrapped and same test results on x86_64-linux-gnu against r201084 >> > >> > gcc/cp/ >> > * cxx-pretty-print.h (cxx_pretty_printer): inherit from >> > c_pretty_printer >> > instead of include it. >> > * (cxx_pretty_print.c): adjust accordingly. >> >> This is on my todo stack; thanks for looking into it. >> >> The way to handle this is: >> >> * yes, use inheritance -- that is what I simulated with the C abstractions >> * declare the "pointer to function fields" as virtual functions -- >> that is what I meant >> with the (necessarily poor) emulation through the casts. >> * override those that needed to be overridden in cxx_pretty_printer. >> * adjust the macros. >> * Have the associated constructors do the right thing. > > I agree with all of that, I was just trying to keep patches small but if > you prefer I guess I could do one giant patch that redoes all of this.
At the minimum, the inheritance and the virtual functions should go together. -- Gaby