[Bug libstdc++/93121] std::bit_cast missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93121 Lyberta changed: What|Removed |Added CC||lyberta at lyberta dot net --- Comment #2 from Lyberta --- This should block bug 88322
[Bug c++/93638] [concepts] Dependent names in requires clause reported as different types when function definition is not inline
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93638 Lyberta changed: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #2 from Lyberta --- I have checked my codebase and found that all of my problematic cases now compile cleanly. This bug seems to be fixed.
[Bug c++/67491] [meta-bug] concepts issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491 Bug 67491 depends on bug 93638, which changed state. Bug 93638 Summary: [concepts] Dependent names in requires clause reported as different types when function definition is not inline https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93638 What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
[Bug libstdc++/93983] New: std::filesystem::path is not concept-friendly
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93983 Bug ID: 93983 Summary: std::filesystem::path is not concept-friendly Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: lyberta at lyberta dot net Target Milestone: --- #include #include struct Foo { Foo(const std::filesystem::path& p); }; static_assert(std::copyable); Error: In file included from :1: /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/bits/stl_iterator_base_types.h: In instantiation of 'struct std::iterator_traits': /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/bits/fs_path.h:84:11: required by substitution of 'template using __is_path_iter_src = std::__and_::type, char>, std::is_same::type, char8_t>, std::is_same::type, wchar_t>, std::is_same::type, char16_t>, std::is_same::type, char32_t> >, std::is_base_of > [with _Iter = Foo; _Iter_traits = std::iterator_traits]' /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/bits/fs_path.h:91:5: required by substitution of 'template std::filesystem::__cxx11::__detail::__is_path_iter_src<_Iter> std::filesystem::__cxx11::__detail::__is_path_src(_Iter, int) [with _Iter = Foo]' /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/bits/fs_path.h:115:29: required from 'struct std::filesystem::__cxx11::__detail::__constructible_from' /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/type_traits:138:12: required from 'struct std::__and_ >, std::filesystem::__cxx11::__detail::__constructible_from >' /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/type_traits:143:12: required from 'struct std::__and_ >, std::__not_ >, std::filesystem::__cxx11::__detail::__constructible_from >' /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/bits/fs_path.h:119:11: required by substitution of 'template using _Path = typename std::enable_if >::type, std::filesystem::__cxx11::path> >, std::__not_::type> >, std::filesystem::__cxx11::__detail::__constructible_from<_Tp1, _Tp2> >::value, std::filesystem::__cxx11::path>::type [with _Tp1 = Foo; _Tp2 = void]' /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/bits/fs_path.h:219:7: required by substitution of 'template std::filesystem::__cxx11::path::path(const _Source&, std::filesystem::__cxx11::path::format) [with _Source = Foo; _Require = ]' /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/type_traits:901:30: required from 'struct std::__is_constructible_impl' /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/type_traits:906:12: required from 'struct std::is_constructible' /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/type_traits:3107:25: required from 'constexpr const bool std::is_constructible_v' /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/concepts:139:30: required from here /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/concepts:139:30: error: the value of 'std::is_constructible_v' is not usable in a constant expression 139 | = destructible<_Tp> && is_constructible_v<_Tp, _Args...>; | ^ In file included from /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/concepts:44, from :1: /opt/compiler-explorer/gcc-trunk-20200229/include/c++/10.0.1/type_traits:3107:25: note: 'std::is_constructible_v' used in its own initializer 3107 | inline constexpr bool is_constructible_v = | ^~
[Bug c++/93638] New: [concepts] Dependent names in requires clause reported as different types when function definition is not inline
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93638 Bug ID: 93638 Summary: [concepts] Dependent names in requires clause reported as different types when function definition is not inline Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: lyberta at lyberta dot net Target Milestone: --- This happens a lot but I can't pinpoint exact cases. Here's minimal repro for one case: #include template class A { using type = int; template requires std::same_as void Foo(); }; template template requires std::same_as::type, U> void A::Foo() { } error: no declaration matches 'void A::Foo()'
[Bug c++/93207] New: [concepts] Variadic concepts refuse no compile when function definition is not inline
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93207 Bug ID: 93207 Summary: [concepts] Variadic concepts refuse no compile when function definition is not inline Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: lyberta at lyberta dot net Target Milestone: --- template concept C = true; struct S { template void f() requires C; }; template void S::f() requires C { } error: no declaration matches 'void S::f() requires C' void S::f() ^ note: candidate is: 'template void S::f() requires C' void f() ^
[Bug demangler/85309] demangler failed with signal 11
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85309 Lyberta changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #2 from Lyberta --- Yes. Doesn't crash anymore.
[Bug demangler/85309] New: demangler failed with signal 11
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85309 Bug ID: 85309 Summary: demangler failed with signal 11 Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: demangler Assignee: unassigned at gcc dot gnu.org Reporter: lyberta at lyberta dot net Target Milestone: --- Try to run my C++17 application under GDB I get: /build/gdb-uGdIdO/gdb-7.12/gdb/cp-support.c:1600: demangler-warning: unable to demangle '_ZSt7forwardIRZN3ftz6Engine20ClientNetworkHandler13ProcessEventsEvEUlRT_E_EOS3_RNSt16remove_referenceIS3_E4typeE' (demangler failed with signal 11) Unable to dump core, use `ulimit -c unlimited' before executing GDB next time. /build/gdb-uGdIdO/gdb-7.12/gdb/cp-support.c:1615: demangler-warning: unable to demangle '_ZSt7forwardIRZN3ftz6Engine20ClientNetworkHandler13ProcessEventsEvEUlRT_E_EOS3_RNSt16remove_referenceIS3_E4typeE' (demangler failed with signal 11) It is a lambda inside ftz::Engine::ClientNetworkHandler::ProcessEvents.
[Bug libstdc++/81190] New: std::optional doesn't compile with containers that have noncopyable types
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81190 Bug ID: 81190 Summary: std::optional doesn't compile with containers that have noncopyable types Product: gcc Version: 7.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: lyberta at lyberta dot net Target Milestone: --- The following code will compile perfectly with std::experimental::optional but will produce compiler errors with std::optional: #include #include #include #include class Foo { public: Foo(std::unique_ptr a) { m1.emplace(42, std::move(a)); } private: std::map<int, std::unique_ptr> m1; }; int main() { std::optional opt; opt.emplace(std::make_unique(42)); opt = std::nullopt; }