This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH for C++ build problems with -fno-vtable-thunks
- To: mark at markmitchell dot com, egcs-patches at cygnus dot com
- Subject: Re: PATCH for C++ build problems with -fno-vtable-thunks
- From: Robert Lipe <robertl at dgii dot com>
- Date: Tue, 27 Oct 1998 08:39:21 -0600
- References: <199810270735.XAA13455@smtp.earthlink.net>
Mark Mitchell wrote:
> Here's a patch. We were building bogus types; my previous change
> unearthed them.
That seems to have cured it on my target. It also seems to have cleaned
up two additional failures on init8 and const1. :-)
With this patch applied, I'm down to 7 failures in the default g++ case.
They seem mostly different enough to be believable problems.
FAIL: g++.brendan/explicit1.C (test for excess errors)
FAIL: g++.jason/template18.C undefined (test for errors, line 16)
FAIL: g++.law/profile1.C (test for excess errors)
FAIL: g++.mike/dyncast7.C (test for excess errors)
FAIL: g++.other/crash3.C (test for excess errors)
FAIL: g++.robertl/eb27.C (test for excess errors)
FAIL: g++.robertl/eb41.C (test for excess errors)
FAIL: g++.jason/template18.C undefined (test for errors, line 16)
XFAIL: g++.jason/template18.C (test for excess errors)
Undefined first referenced
symbol in file
int min<int>(int, int) /usr/tmp/ccjZVrlj.o
/play/negcs/gcc/testsuite/g++-jason-template18-C: fatal error: Symbol referencin
g errors. No output written to /play/negcs/gcc/testsuite/g++-jason-template18-C
collect2: ld returned 1 exit status
dyncast7
FAIL: g++.mike/dyncast7.C (test for excess errors)
/play/negcs/i686-pc-sco3.2v5.0.5//libstdc++/libstdc++.a(cstrmain.o): fatal error
: symbol `basic_string<char, string_char_traits<char>, __default_alloc_template<
false, 0> >::Rep::data(void)` multiply-defined, also in file /usr/tmp/ccOve9Ye.o
collect2: ld returned 1 exit status
spawn /play/negcs/gcc/testsuite/../xgcc -B/play/negcs/gcc/testsuite/../ /play/eg
cs/gcc/testsuite/g++.old-deja/g++.other/crash3.C -g -O2 -I/play/egcs/libio -I/pl
ay/negcs/i686-pc-sco3.2v5.0.5/libio -I/play/egcs/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/crash3.o ^M
(EOF):undefined name: .L_E128^M
compiler exited with status 1
output is:
FAIL: g++.robertl/eb27.C (test for excess errors)
/play/egcs/gcc/testsuite/g++.old-deja/g++.robertl/eb27.C:33: no match for `test<
T> & += const test<int> &'
FAIL: g++.robertl/eb41.C (test for excess errors)
/play/negcs/i686-pc-sco3.2v5.0.5//libstdc++/libstdc++.a(cstrmain.o): fatal error
: symbol `basic_string<char, string_char_traits<char>, __default_alloc_template<
false, 0> >::rep(void) const` multiply-defined, also in file /usr/tmp/ccMUZ6ja.o
collect2: ld returned 1 exit status
Thanx for the prompt fix, Mark!
RJL
> 1998-10-26 Mark Mitchell <mark@markmitchell.com>
>
> * error.c (dump_decl): Deal with TEMPLATE_DECLs that are
> VAR_DECLs. Handle vtables whose DECL_CONTEXT is not a type.
>
> * class.c (finish_struct_1): Use build_cplus_array_type to build
> array types.
> * decl.c (init_decl_processing): Likewise.
> * except.c (expand_end_eh_spec): Likewise.
> * search.c (expand_upcast_fixups): Simplify very slightly.