Article View: gnu.g++.bug
Article #410fix to a fix
From: Michael Tiemann
Date: Tue, 12 Sep 1989 01:17
Date: Tue, 12 Sep 1989 01:17
99 lines
3814 bytes
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
Technical Details
Message-ID:
<8909120117.AA00678@teacake.sun.com>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!sun.com!tiemannShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!sun.com!tiemann From: tiemann@sun.com (Michael Tiemann) Newsgroups: gnu.g++.bug Subject: fix to a fix Message-ID: <8909120117.AA00678@teacake.sun.com> Date: 12 Sep 89 01:17:46 GMT Sender: daemon@tut.cis.ohio-state.edu Reply-To: tiemann@sun.com Distribution: gnu Organization: GNUs Not Usenet Lines: 99