This patch by Than McIntosh fixes an off-by-one error in the array
length of the value we create for a GC symbol.  This was not serious,
it just wasted an element.  Bootstrapped and ran Go testsuite on
x86_64-pc-linux-gnu.  Committed to mainline.

Ian
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE     (revision 243729)
+++ gcc/go/gofrontend/MERGE     (working copy)
@@ -1,4 +1,4 @@
-e807c1deec1e7114bc4757b6193510fdae13e75f
+ae57b28b3caf1f6670e0f663235f1bf7655db870
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: gcc/go/gofrontend/types.cc
===================================================================
--- gcc/go/gofrontend/types.cc  (revision 243445)
+++ gcc/go/gofrontend/types.cc  (working copy)
@@ -2261,7 +2261,7 @@ Type::gc_symbol_constructor(Gogo* gogo)
 
   vals->push_back(Expression::make_integer_ul(GC_END, uintptr_t, bloc));
 
-  Expression* len = Expression::make_integer_ul(vals->size() + 1, NULL,
+  Expression* len = Expression::make_integer_ul(vals->size(), NULL,
                                                bloc);
   Array_type* gc_symbol_type = Type::make_array_type(uintptr_t, len);
   return Expression::make_array_composite_literal(gc_symbol_type, vals, bloc);

Reply via email to