https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102138
--- Comment #11 from Drea Pinski <pinskia at gcc dot gnu.org> ---
Bexpression* var_expr =
gogo->backend()->var_expression(t->type_descriptor_var_, location);
Bexpression* var_addr =
gogo->backend()->address_expression(var_expr, location);
This fixes the issue:
```
diff --git a/gcc/go/go-gcc.cc b/gcc/go/go-gcc.cc
index aa7939b2438..b61331b2419 100644
--- a/gcc/go/go-gcc.cc
+++ b/gcc/go/go-gcc.cc
@@ -1721,7 +1721,7 @@ Gcc_backend::address_expression(Bexpression* bexpr,
Location location)
tree expr = bexpr->get_tree();
if (expr == error_mark_node)
return this->error_expression();
-
+ TREE_ADDRESSABLE (expr) = 1;
tree ret = build_fold_addr_expr_loc(location.gcc_location(), expr);
return this->make_expression(ret);
```
But I doubt it is correct.