[Bug go/83102] [8 Regression] go bootstrap error in ast-dump.cc due to __is_invocable failure

2017-11-22 Thread ian at airs dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102

Ian Lance Taylor  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from Ian Lance Taylor  ---
Should be fixed.

[Bug go/83102] [8 Regression] go bootstrap error in ast-dump.cc due to __is_invocable failure

2017-11-22 Thread ian at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102

--- Comment #8 from ian at gcc dot gnu.org  ---
Author: ian
Date: Wed Nov 22 15:18:43 2017
New Revision: 255062

URL: https://gcc.gnu.org/viewcvs?rev=255062&root=gcc&view=rev
Log:
compiler: make comparison operator() methods const

This is required for new versions of libstdc++ in C++17 mode.

Fixes GCC PR 83102.

Reviewed-on: https://go-review.googlesource.com/79396

Modified:
trunk/gcc/go/gofrontend/MERGE
trunk/gcc/go/gofrontend/gogo.h
trunk/gcc/go/gofrontend/parse.cc
trunk/gcc/go/gofrontend/parse.h

[Bug go/83102] [8 Regression] go bootstrap error in ast-dump.cc due to __is_invocable failure

2017-11-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102

--- Comment #7 from Jonathan Wakely  ---
Created attachment 42679
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42679&action=edit
Patch to make comparisons work on const objects.

Parse::Enclosing_var_comparison::operator() needs a fix too.

With this patch I can bootstrap with Go at r255051 (after that it builds
without a patch, because I relaxed the static_assert in libstdc++).

[Bug go/83102] [8 Regression] go bootstrap error in ast-dump.cc due to __is_invocable failure

2017-11-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102

--- Comment #6 from Jonathan Wakely  ---
Author: redi
Date: Wed Nov 22 11:06:15 2017
New Revision: 255052

URL: https://gcc.gnu.org/viewcvs?rev=255052&root=gcc&view=rev
Log:
PR go/83102 relax std::set checks for invocable comparison object

PR go/83102
* include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
comparison object pre-C++17.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/stl_tree.h

[Bug go/83102] [8 Regression] go bootstrap error in ast-dump.cc due to __is_invocable failure

2017-11-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102

--- Comment #5 from Jonathan Wakely  ---
This is the fix for the Go frontend (untested, but obviously correct):

--- a/gcc/go/gofrontend/gogo.h
+++ b/gcc/go/gofrontend/gogo.h
@@ -117,7 +117,7 @@ class Import_init
 // For sorting purposes.

 struct Import_init_lt {
-  bool operator()(const Import_init* i1, const Import_init* i2)
+  bool operator()(const Import_init* i1, const Import_init* i2) const
   {
 return i1->init_name() < i2->init_name();
   }