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

PATCH for Re: egcs-1.0.2, egcs-980315 and templates



Andrew --

  Here's a patch for your problem.  Jason?

-- 
Mark Mitchell <mmitchell@usa.net>
http://home.earthlink.net/~mbmitchell
Consulting Services Available

Sat Mar 21 19:00:03 1998  Mark Mitchell  <mmitchell@usa.net>

	* 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<class K>
+ struct A {
+ 	int foo(const K&);
+ 	int bar(const K&);
+ };
+ 
+ template<class K>
+ int
+ A<K>::bar(const K& k)
+ {
+ 	return(foo(k));
+ }
+ 
+ template<>
+ int
+ A<const char*>::foo(const char*const& k)
+ {
+         return((int)k);
+ }


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