diff options
| author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-12-22 16:47:53 +0000 |
|---|---|---|
| committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-12-22 16:47:53 +0000 |
| commit | ed7c2e2f9071c7649b974ad6ec92f6b2d8f7eabe (patch) | |
| tree | 809d93ffc84a78e185b262b984f5f6aaed5f0ec3 | |
| parent | 24fc89248d81a32f29fdf6a5da9be18977727948 (diff) | |
| download | ppe42-gcc-ed7c2e2f9071c7649b974ad6ec92f6b2d8f7eabe.tar.gz ppe42-gcc-ed7c2e2f9071c7649b974ad6ec92f6b2d8f7eabe.zip | |
Don't crash on array type with erroneous length expression.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168176 138bc75d-0d04-0410-961f-82ee72b054a4
| -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 c0914cac78e..7a9bfc74028 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_; |

