Commit 72e4661a by Paolo Carlini Committed by Paolo Carlini

re PR c++/20461 (ICE at "class 'C' does not have any field named 'f'" error)

2005-03-21  Paolo Carlini  <pcarlini@suse.de>

	PR c++/20461
	PR c++/20536
	* init.c (emit_mem_initializers): Don't crash on undefined
	types.

2005-03-21  Paolo Carlini  <pcarlini@suse.de>

	PR c++/20147
	* semantics.c (finish_stmt_expr_expr): Return immediately
	if error_operand_p (expr).

From-SVN: r96784
parent a16095f6
2005-03-21 Paolo Carlini <pcarlini@suse.de>
PR c++/20461
PR c++/20536
* init.c (emit_mem_initializers): Don't crash on undefined
types.
2005-03-21 Paolo Carlini <pcarlini@suse.de>
PR c++/20147
* semantics.c (finish_stmt_expr_expr): Return immediately
if error_operand_p (expr).
2005-03-21 Joseph S. Myers <joseph@codesourcery.com> 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
* cp-tree.h (lvalue_or_else, lvalue_p): New. * cp-tree.h (lvalue_or_else, lvalue_p): New.
......
...@@ -655,6 +655,11 @@ sort_mem_initializers (tree t, tree mem_inits) ...@@ -655,6 +655,11 @@ sort_mem_initializers (tree t, tree mem_inits)
void void
emit_mem_initializers (tree mem_inits) emit_mem_initializers (tree mem_inits)
{ {
/* We will already have issued an error message about the fact that
the type is incomplete. */
if (!COMPLETE_TYPE_P (current_class_type))
return;
/* Sort the mem-initializers into the order in which the /* Sort the mem-initializers into the order in which the
initializations should be performed. */ initializations should be performed. */
mem_inits = sort_mem_initializers (current_class_type, mem_inits); mem_inits = sort_mem_initializers (current_class_type, mem_inits);
......
...@@ -1523,6 +1523,9 @@ finish_stmt_expr_expr (tree expr, tree stmt_expr) ...@@ -1523,6 +1523,9 @@ finish_stmt_expr_expr (tree expr, tree stmt_expr)
{ {
tree result = NULL_TREE; tree result = NULL_TREE;
if (error_operand_p (expr))
return error_mark_node;
if (expr) if (expr)
{ {
if (!processing_template_decl && !VOID_TYPE_P (TREE_TYPE (expr))) if (!processing_template_decl && !VOID_TYPE_P (TREE_TYPE (expr)))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment