Boost-test in fedora 32 is missing 8ac88c62dcc809d42daf8b6bef10f7adecc46dd1, which is required to build with gcc 10 and -std=c++20. The testcase is just a .cc file with #include <boost/test/included/unit_test.hpp> The error is: % g++ -std=c++20 -c test.cc In file included from /usr/include/boost/test/included/unit_test.hpp:29, from test.cc:3: /usr/include/boost/test/impl/test_tools.ipp: In member function ‘void boost::test_tools::tt_detail::print_log_value<const wchar_t*>::operator()(std::ostream&, const wchar_t*)’: /usr/include/boost/test/impl/test_tools.ipp:119:38: error: use of deleted function ‘std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const wchar_t*) [with _Traits = std::char_traits<char>]’ 119 | ostr << ( t ? t : L"null string" ); | ^ In file included from /usr/include/c++/10/iostream:39, from /usr/include/boost/test/unit_test_log_formatter.hpp:26, from /usr/include/boost/test/output/compiler_log_formatter.hpp:17, from /usr/include/boost/test/impl/compiler_log_formatter.ipp:19, from /usr/include/boost/test/included/unit_test.hpp:18, from test.cc:3: /usr/include/c++/10/ostream:634:5: note: declared here 634 | operator<<(basic_ostream<char, _Traits>&, const wchar_t*) = delete; | ^~~~~~~~
What is that code even supposed to do? The old and new versions of the code both write a void* to the stream, which is surely not what is intended? Why replace a null wchar_t* with the meaningless address of a string literal? Why not write null?
And why does it use reinterpret_cast now? Why isn't it just this: ostr << static_cast<const void*>(t); ? I don't consider the upstream change a "fix" for that code.
Good point. Sorry, I only bisected the failure and didn't pay too much attention at what the change in boost was.
I will patch it for Fedora, but I think I'll do it differently.
Sorry to nag, but can we have even the upstream hack before the full fix? This is blocking our migration to C++20, which we are very anxious to perform. I can promise lots of bug reports in return.
It'll be in rawhide and updates-testing today.
(In reply to Avi Kivity from comment #5) > I can promise lots of bug reports in return. I would expect nothing less from you guys ;-) You're very reliable for finding issues on the bleeding edge.
Many thanks. C++17 already looks like an old, unusable language.
FEDORA-2020-9a959e761f has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2020-9a959e761f
https://bodhi.fedoraproject.org/updates/FEDORA-2020-0e722ab915 is the F32 update (I'm not sure why bodhi didn't add a comment about it here).
FEDORA-2020-9a959e761f has been pushed to the Fedora 31 testing repository. In short time you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-9a959e761f` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-9a959e761f See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2020-0e722ab915 has been pushed to the Fedora 32 testing repository. In short time you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-0e722ab915` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-0e722ab915 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2020-920dd1ca57 has been pushed to the Fedora 32 testing repository. In short time you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-920dd1ca57` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-920dd1ca57 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2020-920dd1ca57 has been pushed to the Fedora 32 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2020-9a959e761f has been pushed to the Fedora 31 stable repository. If problem still persists, please make note of it in this bug report.