This patch to the Go frontend detects a failure to set the init
priority for a package.  This would have caught the bug fixed in the
patch in https://golang.org/cl/43610 aka
https://gcc.gnu.org/ml/gcc-patches/2017-05/msg01416.html .
Bootstrapped and ran Go tests on x86_64-pc-linux-gnu.  Committed to
mainline.

Ian
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE     (revision 248248)
+++ gcc/go/gofrontend/MERGE     (working copy)
@@ -1,4 +1,4 @@
-369e1efe19adfc5393d2235992327f39360e0554
+ec49c69df1df4d62f3751fcd7e930d6508d67bf2
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: gcc/go/gofrontend/gogo.cc
===================================================================
--- gcc/go/gofrontend/gogo.cc   (revision 248081)
+++ gcc/go/gofrontend/gogo.cc   (working copy)
@@ -689,7 +689,13 @@ Gogo::init_imports(std::vector<Bstatemen
         this->imported_init_fns_.begin();
        p != this->imported_init_fns_.end();
        ++p)
-    v.push_back(*p);
+    {
+      if ((*p)->priority() < 0)
+       go_error_at(Linemap::unknown_location(),
+                   "internal error: failed to set init priority for %s",
+                   (*p)->package_name().c_str());
+      v.push_back(*p);
+    }
   std::sort(v.begin(), v.end(), priority_compare);
 
   // We build calls to the init functions, which take no arguments.

Reply via email to