This is the mail archive of the gcc-bugs@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]

Re: new g++ errors prevent bootstrapping.


I've now tracked this down a little more.


Robert Lipe wrote:

> I'm seeing lots of g++ errors on OpenServer that have basically the same
> shape.  Top-level libraries won't build, though the stuff in libgcc2 is
> fine..  I don't see this from the same source tree on Linux/x86.

This one seems to be the bulk of the new errors.

> Executing on host: /play/negcs/gcc/testsuite/../xgcc
> -B/play/negcs/gcc/testsuite /../
> /play/egcs/gcc/testsuite/g++.old-deja/g++.brendan/crash15.C
> -ansi -pedanti c-errors -I/play/egcs/libio
> -I/play/negcs/i686-pc-sco3.2v5.0.5/libio -I/play/eg
> cs/libg++ -I/play/egcs/libg++/src -I/play/egcs/libstdc++
> -I/play/egcs/libstdc++/ stl -I/play/negcs/gcc/testsuite/../include -c
> -o /play/negcs/gcc/testsuite/cras h15.o

> /play/egcs/libio/iostream.h:49: sorry, not implemented: `function_decl' not supp
> orted by dump_type
> /play/egcs/libio/iostream.h: In method `ostream::ostream()':
> In file included from /play/egcs/gcc/testsuite/g++.old-deja/g++.brendan/crash15.
> C:3:
> /play/egcs/libio/iostream.h:49: uninitialized const `vtable for '
> /play/egcs/libio/iostream.h:122: sorry, not implemented: `function_decl' not sup
> /play/egcs/libio/iostream.h:229: sorry, not implemented: `function_decl' not sup

[ many more of similar ] 


Armed in the debugger, I can see that this is becuase Mark's new
function on 10/23 (which neatly fits in between the dates I cited)
check_for_uninitialized_const_var (decl) is tagging the vtable thingies
as in error.  

Why does this work for Linux?  Linux seems to be the only major system
that sets DEFAULT_VTABLE_THUNKS.  So it has different vtables than the
systems Alexandre and I are seeing fail.   Sure enough, if I manually
set it, I see the error that this test is testing for.

$ ./cc1plus -quiet -fvtable-thunks crash62.ii
/play/egcs/gcc/testsuite/g++.old-deja/g++.brendan/crash62.C: In function `int main()':
/play/egcs/gcc/testsuite/g++.old-deja/g++.brendan/crash62.C:29: cannot convert `die' from type `ostream' to type `ostream *'


Whether the RTTD is for init_decl_processing to create vtable_entry_type
with a slightly different default value in the !flag_vtable_thunks case
or for check_for_uninit...() to do a different test is something that
I'm sure Mark can spot in a moment. :-)

Thanx,
RJL


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