]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix append with no extra arguments.
authorIan Lance Taylor <ian@gcc.gnu.org>
Thu, 23 Dec 2010 00:55:31 +0000 (00:55 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 23 Dec 2010 00:55:31 +0000 (00:55 +0000)
From-SVN: r168195

gcc/go/gofrontend/expressions.cc

index 23f6e2ba47e5856f9cf6c1e291d6624dddf2f9a9..09d79a0db0cf40bae90e44e14ca8f57294048860 100644 (file)
@@ -7926,10 +7926,16 @@ Builtin_call_expression::do_get_tree(Translate_context* context)
        if (arg1_tree == error_mark_node || arg2_tree == error_mark_node)
          return error_mark_node;
 
-       Array_type* at2 = arg2->type()->array_type();
+       arg2_tree = Expression::convert_for_assignment(context, at,
+                                                      arg2->type(),
+                                                      arg2_tree,
+                                                      location);
+       if (arg2_tree == error_mark_node)
+         return error_mark_node;
+
        arg2_tree = save_expr(arg2_tree);
-       tree arg2_val = at2->value_pointer_tree(gogo, arg2_tree);
-       tree arg2_len = at2->length_tree(gogo, arg2_tree);
+       tree arg2_val = at->value_pointer_tree(gogo, arg2_tree);
+       tree arg2_len = at->length_tree(gogo, arg2_tree);
        if (arg2_val == error_mark_node || arg2_len == error_mark_node)
          return error_mark_node;
        arg2_val = fold_convert_loc(location, ptr_type_node, arg2_val);