summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2010-12-22 16:47:53 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2010-12-22 16:47:53 +0000
commited7c2e2f9071c7649b974ad6ec92f6b2d8f7eabe (patch)
tree809d93ffc84a78e185b262b984f5f6aaed5f0ec3
parent24fc89248d81a32f29fdf6a5da9be18977727948 (diff)
downloadppe42-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.cc8
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_;
OpenPOWER on IntegriCloud