diff -r adeb0f21cd0d go/expressions.cc
--- a/go/expressions.cc	Sat Jun 26 17:08:21 2010 -0700
+++ b/go/expressions.cc	Sat Jun 26 17:09:53 2010 -0700
@@ -3371,6 +3371,7 @@
       tree valptr = fold_convert(const_ptr_type_node,
 				 a->value_pointer_tree(gogo, expr_tree));
       tree len = a->length_tree(gogo, expr_tree);
+      len = fold_convert_loc(this->location(), size_type_node, len);
       if (e->integer_type()->is_unsigned()
 	  && e->integer_type()->bits() == 8)
 	{
