[Bug libstdc++/78991] std::sort and std::unique can not use std::function with clang++ -std=c++14

2017-01-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78991

Jonathan Wakely  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |5.5

--- Comment #8 from Jonathan Wakely  ---
I've added a workaround to the libstdc++ code, which will be included in the
gcc 5.5, 6.4 and 7.1 releases.

You'll need the updated libstdc++ headers to be able to compile this code with
clang, e.g. by requesting the Ubuntu GCC maintainers to include this patch in
their gcc builds.

[Bug libstdc++/78991] std::sort and std::unique can not use std::function with clang++ -std=c++14

2017-01-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78991

--- Comment #7 from Jonathan Wakely  ---
Author: redi
Date: Fri Jan  6 14:04:26 2017
New Revision: 244157

URL: https://gcc.gnu.org/viewcvs?rev=244157=gcc=rev
Log:
PR78991 make __gnu_cxx::__ops constructors explicit

PR libstdc++/78991
* include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
(_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
(_Iter_comp_to_iter, _Iter_negate): Make constructors explicit.
* testsuite/25_algorithms/sort/78991.cc: New test.

Added:
branches/gcc-5-branch/libstdc++-v3/testsuite/25_algorithms/sort/78991.cc
Modified:
branches/gcc-5-branch/libstdc++-v3/ChangeLog
branches/gcc-5-branch/libstdc++-v3/include/bits/predefined_ops.h

[Bug libstdc++/78991] std::sort and std::unique can not use std::function with clang++ -std=c++14

2017-01-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78991

--- Comment #6 from Jonathan Wakely  ---
Author: redi
Date: Fri Jan  6 13:20:05 2017
New Revision: 244152

URL: https://gcc.gnu.org/viewcvs?rev=244152=gcc=rev
Log:
PR78991 make __gnu_cxx::__ops constructors explicit

PR libstdc++/78991
* include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
(_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
(_Iter_comp_to_iter, _Iter_negate): Make constructors explicit.
* testsuite/25_algorithms/sort/78991.cc: New test.

Added:
branches/gcc-6-branch/libstdc++-v3/testsuite/25_algorithms/sort/78991.cc
Modified:
branches/gcc-6-branch/libstdc++-v3/ChangeLog
branches/gcc-6-branch/libstdc++-v3/include/bits/predefined_ops.h

[Bug libstdc++/78991] std::sort and std::unique can not use std::function with clang++ -std=c++14

2017-01-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78991

--- Comment #5 from Jonathan Wakely  ---
Author: redi
Date: Fri Jan  6 12:33:58 2017
New Revision: 244150

URL: https://gcc.gnu.org/viewcvs?rev=244150=gcc=rev
Log:
PR78991 make __gnu_cxx::__ops constructors explicit

PR libstdc++/78991
* include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
(_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
(_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
move function objects.
(__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
(__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
* testsuite/25_algorithms/sort/78991.cc: New test.

Added:
trunk/libstdc++-v3/testsuite/25_algorithms/sort/78991.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/predefined_ops.h

[Bug libstdc++/78991] std::sort and std::unique can not use std::function with clang++ -std=c++14

2017-01-05 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78991

Jonathan Wakely  changed:

   What|Removed |Added

 Status|RESOLVED|ASSIGNED
   Last reconfirmed||2017-01-05
 Resolution|INVALID |---
   Assignee|unassigned at gcc dot gnu.org  |redi at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #4 from Jonathan Wakely  ---
I'm not convinced this is a clang bug, but either way we can work around it
fairly easily in libstdc++.

[Bug libstdc++/78991] std::sort and std::unique can not use std::function with clang++ -std=c++14

2017-01-04 Thread daiw at gmx dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78991

Tobias  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #3 from Tobias  ---
resolved as invalid. now posted here:
https://llvm.org/bugs/show_bug.cgi?id=31537

[Bug libstdc++/78991] std::sort and std::unique can not use std::function with clang++ -std=c++14

2017-01-04 Thread daiw at gmx dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78991

--- Comment #2 from Tobias  ---
Thanks. The evidence you collected shows quite clear, that it probably is a
problem with clang.
So I now posted it here: https://llvm.org/bugs/show_bug.cgi?id=31537

[Bug libstdc++/78991] std::sort and std::unique can not use std::function with clang++ -std=c++14

2017-01-04 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78991

--- Comment #1 from Andrew Pinski  ---
How positive you are that this is a libstdc++ bug rather than a clang bug?  It
works correctly with GCC 5.4.0's front-end and GCC 7.0's libstdc++ and
front-end.