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] Hookize output_vtable_inherit


Jan Hubicka <jh@suse.cz> writes:

>> On Sat, 2003-06-21 at 12:06, Jan Hubicka wrote:
>> > 
>> > Hi,
>> > this patch adds hooks to assemble_variable to deal with output_vtable_inherit
>> > as discussed earlier.   I didn't find pleasant way to discover virtual tables
>> > and vtts, so I simply look for them in the list.
>> 
>> That's no good; let's not turn what used to be a constant-time operation
>> into a linear-time operation.  Add a mark bit if you need one.
> OK, here is updated patch.  There does not appear to be language
> specific decl flag but I can use generic tree flag.
> Does this look better?
>
> (regtested/bootstrapped x86-64)
>
> Mon Jun 23 20:11:36 CEST 2003  Jan Hubicka  <jh@suse.cz>
> 	* class.c (build_vtable): Make vtables.
> 	* cp-tree.h (DECL_VTABLE_OR_VTT_P): New macro.
> 	* decl2.c (output_vtable_inherit): Rename to ...
> 	(prepare_assemble_variable): ... this one; change interface.
> 	(maybe_emit_vtables): Do not call output_vtable_inherit.
> 	* cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Define.
> 	* cp-tree.h (prepare_assemble_variable): New.

This causes the assembler to barf because it expects the first
argument of .vtable_inherit to be already defined, but now the
directive is output before the definition.  See the selective4 and
selective5 tests in the ld testsuite.

Andreas.


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