🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.bug
Article #196

g++ 2.2.2 problem with template functions

#196
From: Marvin Solomon
Date: Thu, 06 Aug 1992 12:28
63 lines
4316 bytes
g++ 2.2.2 seems to have a problem with templates (don't we all! :-).
It doesn't generate a definition of the instantiated 'f'.  If the declaration
removed, the problem goes away.

Script started on Thu Aug  6 17:25:20 1992
$ cat foo1.c
extern "C" void printf(...);

template <class T> struct C { int i; };

#ifdef BAD
template <class T> void f(C<T>);
#endif

template <class T> void f(C<T> c) { printf("%d\n",c.i); }

main() {
	C<int> c1;
	c1.i = 17;
	f(c1);
}
$ g++ -v foo1.c
Reading specs from /usr/gnu/lib/gcc-lib/decstation/2.2.2/specs
gcc version 2.2.2
 /usr/gnu/lib/gcc-lib/decstation/2.2.2/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__ANSI_COMPAT -DMIPSEL -DR3000 -DSYSTYPE_BSD -D_SYSTYPE_BSD -Dbsd4_2 -Dhost_mips -Dmips -Dultrix -Dunix -D__ANSI_COMPAT -D__MIPSEL__ -D__R3000__ -D__SYSTYPE_BSD__ -D___SYSTYPE_BSD__ -D__bsd4_2__ -D__host_mips__ -D__mips__ -D__ultrix__ -D__unix__ -D__ANSI_COMPAT -D__MIPSEL -D__R3000 -D__SYSTYPE_BSD -D___SYSTYPE_BSD -D__bsd4_2 -D__host_mips -D__mips -D__ultrix -D__unix -D__LANGUAGE_C__ -D__LANGUAGE_C -DLA
NGUAGE_C foo1.c /usr/tmp/cca08048.i
GNU CPP version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix
 /usr/gnu/lib/gcc-lib/decstation/2.2.2/cc1plus /usr/tmp/cca08048.i -quiet -dumpbase foo1.cc -version -o /usr/tmp/cca08048.s
GNU C++ version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix compiled by GNU C version 2.2.2.
 as -nocpp -EL -v -o foo1.o /usr/tmp/cca08048.s
/usr/lib/cmplrs/cc/as0 -v -G 8 -EL -g0 -O1 /usr/tmp/cca08048.s -o /tmp/ctmaa08059 -t /tmp/ctmsta08059 
as0: main f__FGt1C1Zi 
0.0u 0.0s 0:00 15% 51+49k 0+7io 6pf+0w
/usr/lib/cmplrs/cc/as1 -v -G 8 -p0 -EL -g0 -O1 /tmp/ctmaa08059 -o foo1.o -t /tmp/ctmsta08059 
as1: main f__FGt1C1Zi 
0.0u 0.0s 0:00 20% 89+73k 1+1io 8pf+0w
 /usr/gnu/lib/gcc-lib/decstation/2.2.2/mips-tfile -v -o foo1.o /usr/tmp/cca08048.s
mips-tfile version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix
 /usr/gnu/lib/gcc-lib/decstation/2.2.2/ld -EL /usr/lib/cmplrs/cc/crt0.o -L/usr/gnu/lib/gcc-lib/decstation/2.2.2 -L/usr/lib/cmplrs/cc -L/usr/lib/cmplrs/cc -L/usr/gnu/lib foo1.o -lg++ -lgcc -lc -lgcc
$ g++ -v -DBAD foo1.c
Reading specs from /usr/gnu/lib/gcc-lib/decstation/2.2.2/specs
gcc version 2.2.2
 /usr/gnu/lib/gcc-lib/decstation/2.2.2/cpp -lang-c++ -v -DBAD -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__ANSI_COMPAT -DMIPSEL -DR3000 -DSYSTYPE_BSD -D_SYSTYPE_BSD -Dbsd4_2 -Dhost_mips -Dmips -Dultrix -Dunix -D__ANSI_COMPAT -D__MIPSEL__ -D__R3000__ -D__SYSTYPE_BSD__ -D___SYSTYPE_BSD__ -D__bsd4_2__ -D__host_mips__ -D__mips__ -D__ultrix__ -D__unix__ -D__ANSI_COMPAT -D__MIPSEL -D__R3000 -D__SYSTYPE_BSD -D___SYSTYPE_BSD -D__bsd4_2 -D__host_mips -D__mips -D__ultrix -D__unix -D__LANGUAGE_C__ -D__LANGUAGE_
C -DLANGUAGE_C foo1.c /usr/tmp/cca08065.i
GNU CPP version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix
 /usr/gnu/lib/gcc-lib/decstation/2.2.2/cc1plus /usr/tmp/cca08065.i -quiet -dumpbase foo1.cc -version -o /usr/tmp/cca08065.s
GNU C++ version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix compiled by GNU C version 2.2.2.
 as -nocpp -EL -v -o foo1.o /usr/tmp/cca08065.s
/usr/lib/cmplrs/cc/as0 -v -G 8 -EL -g0 -O1 /usr/tmp/cca08065.s -o /tmp/ctmaa08077 -t /tmp/ctmsta08077 
as0: main 
0.0u 0.0s 0:00 22% 53+51k 0+8io 6pf+0w
/usr/lib/cmplrs/cc/as1 -v -G 8 -p0 -EL -g0 -O1 /tmp/ctmaa08077 -o foo1.o -t /tmp/ctmsta08077 
as1: main 
0.0u 0.1s 0:00 23% 74+60k 1+1io 8pf+0w
 /usr/gnu/lib/gcc-lib/decstation/2.2.2/mips-tfile -v -o foo1.o /usr/tmp/cca08065.s
mips-tfile version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix
 /usr/gnu/lib/gcc-lib/decstation/2.2.2/ld -EL /usr/lib/cmplrs/cc/crt0.o -L/usr/gnu/lib/gcc-lib/decstation/2.2.2 -L/usr/lib/cmplrs/cc -L/usr/lib/cmplrs/cc -L/usr/gnu/lib foo1.o -lg++ -lgcc -lc -lgcc
ld:
Undefined:
f__FGt1C1Zi
collect: /usr/bin/ld returned 1 exit status
$
script done on Thu Aug  6 17:25:58 1992
Technical Details
Message-ID: <9208062228.AA08084@gjetost.cs.wisc.edu>
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!cs.wisc.edu!solomon

Show Full Headers
Complete Article Headers
Newsgroups: gnu.g++.bug
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!cs.wisc.edu!solomon
From: solomon@cs.wisc.edu (Marvin Solomon)
Subject: g++ 2.2.2 problem with template functions
Message-ID: <9208062228.AA08084@gjetost.cs.wisc.edu>
Sender: gnulists@ai.mit.edu
Organization: GNUs Not Usenet
Distribution: gnu
Date: Thu, 6 Aug 1992 12:28:29 GMT
Approved: bug-g++@prep.ai.mit.edu
Lines: 62