This patch changes the Go frontend to not make the map zero value
constant.  The map zero value is a common symbol, and it doesn't
really make sense to have a constant common symbol. Current GCC has
started to reject this case, probably as part of the fix for PR 83100.
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 255090)
+++ gcc/go/gofrontend/MERGE     (working copy)
@@ -1,4 +1,4 @@
-57adb928c3cc61ac8fa47554394670a1c455afc2
+0d6b3abcbfe04949db947081651a503ceb12fe6e
 
 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 254748)
+++ gcc/go/gofrontend/types.cc  (working copy)
@@ -7717,10 +7717,10 @@ Map_type::backend_zero_value(Gogo* gogo)
   std::string asm_name(go_selectively_encode_id(zname));
   Bvariable* zvar =
       gogo->backend()->implicit_variable(zname, asm_name,
-                                         barray_type, false, true, true,
-                                      Map_type::zero_value_align);
+                                         barray_type, false, false, true,
+                                        Map_type::zero_value_align);
   gogo->backend()->implicit_variable_set_init(zvar, zname, barray_type,
-                                             false, true, true, NULL);
+                                             false, false, true, NULL);
   return zvar;
 }
 

Reply via email to