From 8be04b48a4b31ede3691a70daba6dbc03dc428c2 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 23 May 2017 23:55:59 +0000 Subject: [PATCH] compiler: detect failure to set init priority for package This would have caught the problem fixed by https://golang.org/cl/43610. Reviewed-on: https://go-review.googlesource.com/43999 From-SVN: r248394 --- gcc/go/gofrontend/MERGE | 2 +- gcc/go/gofrontend/gogo.cc | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 2a4aa2dbb03..17239fd1e5c 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -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. diff --git a/gcc/go/gofrontend/gogo.cc b/gcc/go/gofrontend/gogo.cc index daf2ba4cb0b..26f6441d5b1 100644 --- a/gcc/go/gofrontend/gogo.cc +++ b/gcc/go/gofrontend/gogo.cc @@ -689,7 +689,13 @@ Gogo::init_imports(std::vector& init_stmts, Bfunction *bfunction) 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. -- 2.30.2