To clarify, this is affecting the
https://src.fedoraproject.org/rpms/json package and (since it is a
header-only library) some or all of the many packages that use it.
Here’s the upstream issue:
https://github.com/nlohmann/json/issues/3138
It looks like they’re not sure what to do about it yet.
– Ben
On 1/15/22 13:17, Vitaly Zaitsev via devel wrote:
> On 14/01/2022 15:31, Jakub Jelinek wrote:
>> gcc 12 snapshot has landed as the system compiler into rawhide today.
>
> Another regression:
>
> FAILED: test/CMakeFiles/test-regression1.dir/src/unit-regression1.cpp.o
> /usr/bin/g++ -DDOCTEST_CONFIG_SUPER_FAST_ASSERTS -DJSON_DIAGNOSTICS=0
> -DJSON_USE_IMPLICIT_CONVERSIONS=1
> -I/builddir/build/BUILD/json-3.10.5/redhat-linux-build/include
> -I/builddir/build/BUILD/json-3.10.5/test/thirdparty/doctest
> -I/builddir/build/BUILD/json-3.10.5/test/thirdparty/fifo_map
> -I/builddir/build/BUILD/json-3.10.5/include -O2 -flto=auto
> -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall
> -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
> -Wp,-D_GLIBCXX_ASSERTIONS
> -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
> -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1
> -mbranch-protection=standard -fasynchronous-unwind-tables
> -fstack-clash-protection -Wno-deprecated -Wno-float-equal
> -Wno-deprecated-declarations -MD -MT
> test/CMakeFiles/test-regression1.dir/src/unit-regression1.cpp.o -MF
> test/CMakeFiles/test-regression1.dir/src/unit-regression1.cpp.o.d -o
> test/CMakeFiles/test-regression1.dir/src/unit-regression1.cpp.o -c
> /builddir/build/BUILD/json-3.10.5/test/src/unit-regression1.cpp
> /builddir/build/BUILD/json-3.10.5/test/src/unit-regression1.cpp: In
> function 'void DOCTEST_ANON_FUNC_2()':
> /builddir/build/BUILD/json-3.10.5/test/src/unit-regression1.cpp:392:22:
> error: ambiguous overload for 'operator=' (operand types are
> 'std::string' {aka 'std::__cxx11::basic_string<char>'} and
> 'nlohmann::basic_json<>::value_type' {aka
'nlohmann::basic_json<>'})
> 392 | s2 = o["name"];
> | ^
> In file included from /usr/include/c++/12/string:53,
> from /usr/include/c++/12/bits/locale_classes.h:40,
> from /usr/include/c++/12/locale:39,
> from
> /builddir/build/BUILD/json-3.10.5/test/src/unit-regression1.cpp:33:
> /usr/include/c++/12/bits/basic_string.h:733:21: note: candidate:
> 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&
> std::__cxx11::basic_string<_CharT, _Traits,
> _Alloc>::operator=(std::nullptr_t) [with _CharT = char; _Traits =
> std::char_traits<char>; _Alloc = std::allocator<char>; std::nullptr_t
> = std::nullptr_t]' (deleted)
> 733 | basic_string& operator=(nullptr_t) = delete;
> | ^~~~~~~~
> /usr/include/c++/12/bits/basic_string.h:801:7: note: candidate:
> 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&
> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const
> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT =
> char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]'
> 801 | operator=(const basic_string& __str)
> | ^~~~~~~~
> /usr/include/c++/12/bits/basic_string.h:842:7: note: candidate:
> 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&
> std::__cxx11::basic_string<_CharT, _Traits,
> _Alloc>::operator=(std::__cxx11::basic_string<_CharT, _Traits,
> _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>;
> _Alloc = std::allocator<char>]'
> 842 | operator=(basic_string&& __str)
> | ^~~~~~~~
> In file included from
> /builddir/build/BUILD/json-3.10.5/test/thirdparty/doctest/doctest_compatibility.h:6,
> from
> /builddir/build/BUILD/json-3.10.5/test/src/unit-regression1.cpp:30:
> /builddir/build/BUILD/json-3.10.5/test/src/unit-regression1.cpp: In
> lambda function:
> /builddir/build/BUILD/json-3.10.5/test/src/unit-regression1.cpp:398:37:
> error: ambiguous overload for 'operator=' (operand types are
> 'std::string' {aka 'std::__cxx11::basic_string<char>'} and
> 'nlohmann::basic_json<>::value_type' {aka
'nlohmann::basic_json<>'})
> 398 | CHECK_THROWS_AS(s2 = o["int"], json::type_error);
>