diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2010-12-21 23:19:43 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2010-12-21 23:19:43 +0000 |
commit | 67eff3d9f72b4ae733dd519331f90757d48f0590 (patch) | |
tree | ae950f2052597a55ad479b1e12ca5a1bd9817ed3 | |
parent | 9ff48ac359242322c5dca42ea9d854422360a9ce (diff) | |
download | gcc-67eff3d9f72b4ae733dd519331f90757d48f0590.zip gcc-67eff3d9f72b4ae733dd519331f90757d48f0590.tar.gz gcc-67eff3d9f72b4ae733dd519331f90757d48f0590.tar.bz2 |
Don't crash on calling new with an erroneous type.
From-SVN: r168144
-rw-r--r-- | gcc/go/gofrontend/expressions.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 5cd9e66..faea908 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -10242,9 +10242,13 @@ tree 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); } |