[gnu.g++.bug] Vince Russo's ``nasty'' bug

mdt@YAHI.STANFORD.EDU (Michael Tiemann) (12/19/88)

Can be fixed with these patches.

yahi% diff -c2 cplus-init.c~ cplus-init.c
*** cplus-init.c~	Sat Dec 17 18:39:23 1988
--- cplus-init.c	Mon Dec 19 01:49:51 1988
***************
*** 2440,2449 ****
        if (basetype && TREE_NEEDS_DESTRUCTOR (basetype))
  	{
! 	  if (TREE_VIRTUAL (basetype))
! 	    exprstmt = build_tree_list (NULL_TREE, build_virtual_init (basetype, ref));
! 
! 	  exprstmt = tree_cons (NULL_TREE,
! 				build_delete (basetype, ref, auto_delete),
! 				exprstmt);
  	}
        else
--- 2440,2452 ----
        if (basetype && TREE_NEEDS_DESTRUCTOR (basetype))
  	{
! 	  expr = build_delete (basetype, ref, auto_delete);
! 	  if (expr != error_mark_node)
! 	    {
! 	      exprstmt = build_tree_list (NULL_TREE, expr);
! 	      if (TREE_VIRTUAL (basetype))
! 		exprstmt = tree_cons (NULL_TREE,
! 				      build_virtual_init (basetype, ref),
! 				      exprstmt);
! 	    }
  	}
        else
yahi% 

Michael