From 2a4368af972061006fc4cb2d8957611ebeb65d65 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 8 Mar 2012 01:38:55 +0000 Subject: [PATCH] compiler: Don't crash on array assignment. From-SVN: r185092 --- gcc/go/gofrontend/expressions.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index a2097e002eb..134b5ae2aae 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -284,8 +284,10 @@ Expression::convert_for_assignment(Translate_context* context, Type* lhs_type, || SCALAR_FLOAT_TYPE_P(lhs_type_tree) || COMPLEX_FLOAT_TYPE_P(lhs_type_tree)) return fold_convert_loc(location.gcc_location(), lhs_type_tree, rhs_tree); - else if (TREE_CODE(lhs_type_tree) == RECORD_TYPE - && TREE_CODE(TREE_TYPE(rhs_tree)) == RECORD_TYPE) + else if ((TREE_CODE(lhs_type_tree) == RECORD_TYPE + && TREE_CODE(TREE_TYPE(rhs_tree)) == RECORD_TYPE) + || (TREE_CODE(lhs_type_tree) == ARRAY_TYPE + && TREE_CODE(TREE_TYPE(rhs_tree)) == ARRAY_TYPE)) { // This conversion must be permitted by Go, or we wouldn't have // gotten here.