From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Mitchell To: andrew@odie.demon.co.uk Cc: egcs@cygnus.com Subject: PATCH for Re: egcs-1.0.2, egcs-980315 and templates Date: Mon, 23 Mar 1998 19:24:00 -0000 Message-id: <199803220303.TAA16477@> References: <199803191832.SAA16587@odie.demon.co.uk> X-SW-Source: 1998-03/msg00777.html Andrew -- Here's a patch for your problem. Jason? -- Mark Mitchell http://home.earthlink.net/~mbmitchell Consulting Services Available Sat Mar 21 19:00:03 1998 Mark Mitchell * pt.c (tsubst): Clear TREE_USED for new FUNCTION_DECLs. Index: pt.c =================================================================== RCS file: /egcs/carton/cvsfiles/egcs/gcc/cp/pt.c,v retrieving revision 1.101 diff -c -p -r1.101 pt.c *** pt.c 1998/03/20 10:44:05 1.101 --- pt.c 1998/03/22 02:57:30 *************** tsubst (t, args, in_decl) *** 4063,4068 **** --- 4197,4203 ---- TREE_CHAIN (r) = NULL_TREE; DECL_CHAIN (r) = NULL_TREE; DECL_PENDING_INLINE_INFO (r) = 0; + TREE_USED (r) = 0; if (IDENTIFIER_OPNAME_P (DECL_NAME (r))) grok_op_properties (r, DECL_VIRTUAL_P (r), DECL_FRIEND_P (r)); Index: spec16.C =================================================================== RCS file: spec16.C diff -N spec16.C *** /dev/null Mon Dec 31 20:00:00 1979 --- spec16.C Sat Mar 21 19:00:01 1998 *************** *** 0 **** --- 1,21 ---- + // Build don't link: + + template + struct A { + int foo(const K&); + int bar(const K&); + }; + + template + int + A::bar(const K& k) + { + return(foo(k)); + } + + template<> + int + A::foo(const char*const& k) + { + return((int)k); + }