compiler: fix off-by-1 array type len in Type::gc_symbol_constructor

Array type being built to hold GC var initializer was being created
    with an extra/unneeded slot. Fix up the code to insure that the array
    length matches the length of the initializer list.
    
    Reviewed-on: https://go-review.googlesource.com/34413

From-SVN: r243731
This commit is contained in:
Ian Lance Taylor 2016-12-15 23:44:13 +00:00
parent 62afb87d9c
commit 63ba3ad3ed
2 changed files with 2 additions and 2 deletions

View File

@ -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.

View File

@ -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);