This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: new g++ errors prevent bootstrapping.
- To: egcs-bugs at cygnus dot com
- Subject: Re: new g++ errors prevent bootstrapping.
- From: Robert Lipe <robertl at dgii dot com>
- Date: Mon, 26 Oct 1998 22:24:55 -0600
- References: <19981026160815.A21276@dgii.com>
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