diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2010-12-15 00:09:12 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2010-12-15 00:09:12 +0000 |
commit | a63d13795100ec8da8d4613dc9192348b94743c0 (patch) | |
tree | 32587e07087d6a569e58b7bb4ba683abaaac4a5d | |
parent | 6930f562ac1b3480b6db2efdc0352140635fbdab (diff) | |
download | gcc-a63d13795100ec8da8d4613dc9192348b94743c0.zip gcc-a63d13795100ec8da8d4613dc9192348b94743c0.tar.gz gcc-a63d13795100ec8da8d4613dc9192348b94743c0.tar.bz2 |
Don't crash building initializer of invalid array.
From-SVN: r167828
-rw-r--r-- | gcc/go/gofrontend/types.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index 3695903..842b484 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -4421,8 +4421,13 @@ Array_type::do_get_init_tree(Gogo* gogo, tree type_tree, bool is_clear) tree value = this->element_type_->get_init_tree(gogo, is_clear); if (value == NULL) return NULL; + if (value == error_mark_node) + return error_mark_node; tree length_tree = this->get_length_tree(gogo); + if (length_tree == error_mark_node) + return error_mark_node; + length_tree = fold_convert(sizetype, length_tree); tree range = build2(RANGE_EXPR, sizetype, size_zero_node, fold_build2(MINUS_EXPR, sizetype, |