This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C++ PATCH to setup_vtbl_ptr




--On Wednesday, December 12, 2001 05:55:44 PM +0000 Jason Merrill 
<jason@redhat.com> wrote:

> Some of the functions-as-trees reorganization broke vtable setup for
> destructors, as we no longer call setup_vtbl_ptr when instantiating
> non-constructors.

Egads.

> This patch fixes that by always pushing a
> CTOR_INITIALIZER when in a template.  The name could probably be improved,
> but it has precisely the semantics we want.  Testcase attached.
>
> Tested i686-pc-linux-gnu on the 3.0 branch.  Mark, this is a regression
> from 2.95; is the patch OK for 3.0.3?

Yes.  I found your patch a little tricky to read because I wasn't sure
whether setup_vtbl_ptr could ever get called for something that
wasn't a constructor or destructor.  You are assuming that never happens,
and I think you are right.  On the mainline, would you mind asserting

  DECL_CONSTRUCTOR_P (current_function_decl)
  || DECL_DESTRUCTOR_P (current_function_decl)

?  Also the comment above setup_vtbl_ptr speaks complete fiction,
and does not explain what the function really does...

Thanks,

-- 
Mark Mitchell                mark@codesourcery.com
CodeSourcery, LLC            http://www.codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]