🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Michael Tiemann Tue, 12 Sep 1989 01:17
fix to a fix
#410
Author: Michael Tiemann
Date: Tue, 12 Sep 1989 01:17
99 lines
3814 bytes
The last bugfix I posted for expr.c was *WRONG*.  The following diff
undoes it, if you have already installed it.  In any event, the fixes
for cplus-init.c do solve the problem.

teacake% diff -c2 expr.c~ expr.c
*** expr.c~	Mon Sep 11 18:06:27 1989
--- expr.c	Mon Sep 11 18:05:55 1989
***************
*** 2306,2310 ****
        if (RTL_EXPR_SEQUENCE (exp) == const0_rtx)
  	abort ();
!       emit_insn (RTL_EXPR_SEQUENCE (exp));
        RTL_EXPR_SEQUENCE (exp) = const0_rtx;
        return RTL_EXPR_RTL (exp);
--- 2306,2310 ----
        if (RTL_EXPR_SEQUENCE (exp) == const0_rtx)
  	abort ();
!       emit_insns (RTL_EXPR_SEQUENCE (exp));
        RTL_EXPR_SEQUENCE (exp) = const0_rtx;
        return RTL_EXPR_RTL (exp);
teacake% diff -c2 cplus-init.c~ cplus-init.c
*** cplus-init.c~	Mon Sep 11 10:42:53 1989
--- cplus-init.c	Mon Sep 11 18:09:40 1989
***************
*** 1023,1030 ****
  				CLASSTYPE_AS_LIST (for_type), flags);
        /* Private, protected, or otherwise unavailable.  */
!       if (rval == error_mark_node)
  	error_with_aggr_type (for_type, "in base initialization for class `%s'");
        /* A valid initialization using constructor.  */
!       else if (rval != NULL_TREE)
  	{
  	  if (alias_this == 0
--- 1023,1030 ----
  				CLASSTYPE_AS_LIST (for_type), flags);
        /* Private, protected, or otherwise unavailable.  */
!       if (rval == error_mark_node && protect > 0)
  	error_with_aggr_type (for_type, "in base initialization for class `%s'");
        /* A valid initialization using constructor.  */
!       else if (rval != error_mark_node && rval != NULL_TREE)
  	{
  	  if (alias_this == 0
***************
*** 1137,1141 ****
  	  else
  	    {
! 	      error_with_aggr_type (for_type, "invalid initializer to constructor for type `%s'");
  	      return;
  	    }
--- 1137,1142 ----
  	  else
  	    {
! 	      error_with_aggr_type (for_type, "in base initialization for class `%s',");
! 	      error_with_aggr_type (type, "invalid initializer to constructor for type `%s'");
  	      return;
  	    }
***************
*** 1145,1148 ****
--- 1146,1150 ----
  	  if (init == NULL_TREE)
  	    assert (parms == NULL_TREE);
+ 	  error_with_aggr_type (for_type, "in base initialization for class `%s',");
  	  /* This will make an error message for us.  */
  	  build_method_call (exp, DECL_NAME (TYPE_NAME (type)), parms,
***************
*** 3188,3194 ****
  	return build (NOP_EXPR, void_type_node, integer_zero_node);
  
!       rval = build (RTL_EXPR, void_type_node);
  
!       head = start_sequence ();
        expand_vec_delete (base, maxindex, elt_size,
  			 dtor_dummy, auto_delete_vec,
--- 3190,3197 ----
  	return build (NOP_EXPR, void_type_node, integer_zero_node);
  
!       rval = make_node (RTL_EXPR);
!       TREE_TYPE (rval) = void_type_node;
  
!       start_sequence ();
        expand_vec_delete (base, maxindex, elt_size,
  			 dtor_dummy, auto_delete_vec,
***************
*** 3195,3199 ****
  			 auto_delete);
        TREE_VOLATILE (rval) = 1;
!       RTL_EXPR_SEQUENCE (rval) = gen_sequence ();
        end_sequence ();
        return rval;
--- 3198,3203 ----
  			 auto_delete);
        TREE_VOLATILE (rval) = 1;
!       emit_insn (gen_sequence ());
!       RTL_EXPR_SEQUENCE (rval) = get_insns ();
        end_sequence ();
        return rval;
teacake% 

Michael
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads