diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2010-12-22 16:47:53 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2010-12-22 16:47:53 +0000 |
commit | 8d2866eafb6865f084791494a7a449065cb0287c (patch) | |
tree | 809d93ffc84a78e185b262b984f5f6aaed5f0ec3 /gcc | |
parent | 6430af38439a5d81a39c02a3762045dfe22c8edd (diff) | |
download | gcc-8d2866eafb6865f084791494a7a449065cb0287c.zip gcc-8d2866eafb6865f084791494a7a449065cb0287c.tar.gz gcc-8d2866eafb6865f084791494a7a449065cb0287c.tar.bz2 |
Don't crash on array type with erroneous length expression.
From-SVN: r168176
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/go/gofrontend/types.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index c0914ca..7a9bfc7 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -4359,8 +4359,12 @@ Array_type::get_length_tree(Gogo* gogo) // expression. FIXME: This won't work in general. Translate_context context(gogo, NULL, NULL, NULL_TREE); tree len = this->length_->get_tree(&context); - len = convert_to_integer(integer_type_node, len); - this->length_tree_ = save_expr(len); + if (len != error_mark_node) + { + len = convert_to_integer(integer_type_node, len); + len = save_expr(len); + } + this->length_tree_ = len; } } return this->length_tree_; |