diff options
Diffstat (limited to 'gcc/go/gofrontend/gogo.cc')
-rw-r--r-- | gcc/go/gofrontend/gogo.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/go/gofrontend/gogo.cc b/gcc/go/gofrontend/gogo.cc index 654b6c3..dcc2ae6 100644 --- a/gcc/go/gofrontend/gogo.cc +++ b/gcc/go/gofrontend/gogo.cc @@ -655,9 +655,13 @@ Gogo::backend_zero_value() Btype* barray_type = this->backend()->array_type(bbtype_type, blength); - return this->backend()->implicit_variable(this->zero_value_->name(), - barray_type, NULL, true, true, - this->zero_value_align_); + std::string zname = this->zero_value_->name(); + Bvariable* zvar = + this->backend()->implicit_variable(zname, barray_type, false, + true, true, this->zero_value_align_); + this->backend()->implicit_variable_set_init(zvar, zname, barray_type, + false, true, true, NULL); + return zvar; } // Add statements to INIT_STMTS which run the initialization @@ -6837,8 +6841,10 @@ Named_object::get_backend(Gogo* gogo, std::vector<Bexpression*>& const_decls, { named_type-> type_descriptor_pointer(gogo, Linemap::predeclared_location()); + named_type->gc_symbol_pointer(gogo); Type* pn = Type::make_pointer_type(named_type); pn->type_descriptor_pointer(gogo, Linemap::predeclared_location()); + pn->gc_symbol_pointer(gogo); } } break; |