* error.c (dump_expr): Clean up NEW_EXPR case.
* tree.c (mapcar): Support NEW_EXPR.
* error.c (dump_expr): Support NEW_EXPR.
* decl2.c (arg_assoc_type): Return 0 for LANG_TYPE.
From-SVN: r20218
+1998-06-04 Jason Merrill <jason@yorick.cygnus.com>
+
+ * error.c (dump_expr): Clean up NEW_EXPR case.
+
+1998-06-04 Martin von Löwis <loewis@informatik.hu-berlin.de>
+
+ * tree.c (mapcar): Support NEW_EXPR.
+
+ * error.c (dump_expr): Support NEW_EXPR.
+
+1998-06-04 Jason Merrill <jason@yorick.cygnus.com>
+
+ * decl2.c (arg_assoc_type): Return 0 for LANG_TYPE.
+
1998-06-03 Jason Merrill <jason@yorick.cygnus.com>
* method.c (make_thunk): Use overload machinery to make name.
case COMPLEX_TYPE:
case CHAR_TYPE:
case BOOLEAN_TYPE:
+ case LANG_TYPE:
return 0;
case RECORD_TYPE:
if (TYPE_PTRMEMFUNC_P (type))
}
break;
+ case NEW_EXPR:
+ {
+ tree type = TREE_OPERAND (t, 1);
+ if (NEW_EXPR_USE_GLOBAL (t))
+ OB_PUTS ("::");
+ OB_PUTS ("new ");
+ if (TREE_OPERAND (t, 0))
+ {
+ OB_PUTC ('(');
+ dump_expr_list (TREE_OPERAND (t, 0));
+ OB_PUTS (") ");
+ }
+ if (TREE_CODE (type) == ARRAY_REF)
+ type = build_cplus_array_type
+ (TREE_OPERAND (type, 0),
+ build_index_type (size_binop (MINUS_EXPR, TREE_OPERAND (type, 1),
+ integer_one_node)));
+ dump_type (type, 0);
+ if (TREE_OPERAND (t, 2))
+ {
+ OB_PUTC ('(');
+ dump_expr_list (TREE_OPERAND (t, 2));
+ OB_PUTC (')');
+ }
+ }
+ break;
+
case TARGET_EXPR:
/* Note that this only works for G++ target exprs. If somebody
builds a general TARGET_EXPR, there's no way to represent that
TREE_OPERAND (t, 2) = NULL_TREE;
return t;
+ case NEW_EXPR:
+ t = copy_node (t);
+ TREE_OPERAND (t, 0) = mapcar (TREE_OPERAND (t, 0), func);
+ TREE_OPERAND (t, 1) = mapcar (TREE_OPERAND (t, 1), func);
+ TREE_OPERAND (t, 2) = mapcar (TREE_OPERAND (t, 2), func);
+ return t;
+
case RECORD_TYPE:
if (TYPE_PTRMEMFUNC_P (t))
return build_ptrmemfunc_type