diff -r 36326cbb6279 go/expressions.cc --- a/go/expressions.cc Tue Dec 21 15:11:44 2010 -0800 +++ b/go/expressions.cc Tue Dec 21 15:15:40 2010 -0800 @@ -10242,9 +10242,13 @@ Allocation_expression::do_get_tree(Translate_context* context) { tree type_tree = this->type_->get_tree(context->gogo()); + if (type_tree == error_mark_node) + return error_mark_node; tree size_tree = TYPE_SIZE_UNIT(type_tree); tree space = context->gogo()->allocate_memory(this->type_, size_tree, this->location()); + if (space == error_mark_node) + return error_mark_node; return fold_convert(build_pointer_type(type_tree), space); }