From mail Sat Jun 23 15:55 EDT 1990
Received: from dg-rtp.dg.com (dg-rtp) by bigbird.rtp.dg.com (4.30/rtp-s01)
	id AA21743; Sat, 23 Jun 90 15:55:16 edt
Received: from Sun.COM by dg-rtp.dg.com (4.20/4.7)
	id AA26693; Sat, 23 Jun 90 15:55:41 edt via SMTP
Received: from Eng.Sun.COM (exodus-bb.Corp.Sun.COM) by Sun.COM (4.1/SMI-4.1)
	id AA25988; Sat, 23 Jun 90 12:56:21 PDT
Received: from masham.Eng.Sun.COM by Eng.Sun.COM (4.1/SMI-4.1)
	id AA03190; Sat, 23 Jun 90 12:56:18 PDT
Received: by masham.Eng.Sun.COM (4.1/SMI-4.1)
	id AA13266; Sat, 23 Jun 90 12:56:16 PDT
Date: Sat, 23 Jun 90 12:56:16 PDT
From: tiemann@masham.Eng.Sun.COM (Michael Tiemann)
Message-Id: <9006231956.AA13266@masham.Eng.Sun.COM>
To: hassey@dg-rtp.dg.com
In-Reply-To: John Hassey's message of Thu, 21 Jun 90 14:23:06 edt <9006211823.AA18068@bigbird.rtp.dg.com>
Subject: 1.37.2 virtual function bug ?
Reply-To: tiemann@cygnus.com
Organization: Cygnus Support (+1 415 322 3811)
Status: R

Try this:

masham% diff -c2 cplus-decl.c~ cplus-decl.c
*** cplus-decl.c~	Fri Jun 22 20:38:38 1990
--- cplus-decl.c	Sat Jun 23 12:35:06 1990
***************
*** 7917,7925 ****
        else last_parm_insn = (struct rtx_def *) previous_insn (last_parm_insn);
  
!       for (vslots = CLASSTYPE_VFIELDS (current_class_type); vslots;
! 	   vslots = TREE_CHAIN (vslots))
! 	expand_expr_stmt (build_virtual_init (current_class_type,
! 					      TREE_VALUE (vslots),
! 					      current_class_decl));
        if (TYPE_USES_VIRTUAL_BASECLASSES (current_class_type))
  	expand_expr_stmt (build_vbase_vtables_init (current_class_type,
--- 7917,7934 ----
        else last_parm_insn = (struct rtx_def *) previous_insn (last_parm_insn);
  
!       /* Make all virtual function table pointers point to CURRENT_CLASS_TYPE's
! 	 virtual function tables.  */
!       if (CLASSTYPE_VFIELDS (current_class_type))
! 	{
! 	  for (vslots = CLASSTYPE_VFIELDS (current_class_type);
! 	       TREE_CHAIN (vslots);
! 	       vslots = TREE_CHAIN (vslots))
! 	    expand_expr_stmt (build_virtual_init (current_class_type,
! 						  TREE_VALUE (vslots),
! 						  current_class_decl));
! 	  expand_expr_stmt (build_virtual_init (current_class_type,
! 						current_class_type,
! 						current_class_decl));
! 	}
        if (TYPE_USES_VIRTUAL_BASECLASSES (current_class_type))
  	expand_expr_stmt (build_vbase_vtables_init (current_class_type,
masham% 

Michael

