Skip to content

compilation fails under gcc > 12 #75

@joelb123

Description

@joelb123

Works under gcc-12.3.1_p20230623
First failure under gcc-13.1.1_p20230527 as below:

x86_64-pc-linux-gnu-g++ -IlibBigWig -Ibonsai/include -Ibonsai -Ibonsai/hll -Ibonsai/hll/include -Ibonsai -I. -Isrc -Ifmt/include -O3 -march=native -fopenmp -pipe -DD2_CACHE_SIZE=4194304 -std=c++20 -Wall -Wextra -Wno-unused-function -Wno-char-subscripts -pedantic -Wno-array-bounds src/emitrect.cpp -c -o src/emitrect.o -DNOCURL -DDASHING2_VERSION="v2.1.16-1-gbf82" -DFMT_HEADER_ONLY -DNDEBUG -flto -O3
src/emitrect.cpp: In function ‘void dashing2::print_tabs(size_t, std::back_insert_iterator<fmt::v8::basic_memory_buffer >&)’:
src/emitrect.cpp:51:28: error: call of overloaded ‘format_to(std::back_insert_iterator<fmt::v8::basic_memory_buffer >&, const std::string_view&)’ is ambiguous
51 | for(;n > 256; format_to(biof, tabstr), n -= 256);
| ~~~~~~~~~^~~~~~~~~~~~~~
In file included from fmt/include/fmt/format.h:44,
from src/emitrect.cpp:2:
fmt/include/fmt/core.h:3073:17: note: candidate: ‘OutputIt fmt::v8::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = std::back_insert_iterator<basic_memory_buffer >; T = {}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type = 0; format_string<T ...> = basic_format_string]’
3073 | FMT_INLINE auto format_to(OutputIt out, format_string<T...> fmt, T&&... args)
| ^~~~~~~~~
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/chrono_io.h:39,
from /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/chrono:3330,
from bonsai/include/bonsai/util.h:4,
from bonsai/include/bonsai/kmerutil.h:7,
from bonsai/include/bonsai/entropy.h:3,
from bonsai/include/bonsai/encoder.h:10,
from src/d2.h:11,
from src/cmp_main.h:3,
from src/emitrect.cpp:1:
/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/format:3745:5: note: candidate: ‘_Out std::format_to(_Out, format_string<_Args ...>, _Args&& ...) [with _Out = back_insert_iterator<fmt::v8::basic_memory_buffer >; _Args = {}; format_string<_Args ...> = basic_format_string]’
3745 | format_to(_Out __out, format_string<_Args...> __fmt, _Args&&... __args)
| ^~~~~~~~~
src/emitrect.cpp:53:14: error: call of overloaded ‘format_to(std::back_insert_iterator<fmt::v8::basic_memory_buffer >&, const char [3], const std::basic_string_view&)’ is ambiguous
53 | format_to(biof, "{}", substr);
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
fmt/include/fmt/core.h:3073:17: note: candidate: ‘OutputIt fmt::v8::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = std::back_insert_iterator<basic_memory_buffer >; T = {const std::basic_string_view<char, std::char_traits >&}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type = 0; format_string<T ...> = basic_format_string<char, const std::basic_string_view<char, std::char_traits >&>]’
3073 | FMT_INLINE auto format_to(OutputIt out, format_string<T...> fmt, T&&... args)
| ^~~~~~~~~
/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/format:3745:5: note: candidate: ‘_Out std::format_to(_Out, format_string<_Args ...>, _Args&& ...) [with _Out = back_insert_iterator<fmt::v8::basic_memory_buffer >; _Args = {const basic_string_view<char, char_traits >&}; format_string<_Args ...> = basic_format_string<char, const basic_string_view<char, char_traits >&>]’
3745 | format_to(_Out __out, format_string<_Args...> __fmt, _Args&&... __args)
| ^~~~~~~~~
src/emitrect.cpp: In function ‘void dashing2::emit_rectangular(const Dashing2DistOptions&, const SketchingResult&)’:
src/emitrect.cpp:351:30: error: call of overloaded ‘format_to(std::back_insert_iterator<fmt::v8::basic_memory_buffer >&, const char [3], std::string&)’ is ambiguous
351 | format_to(biof, "{}", fn);
| ~~~~~~~~~^~~~~~~~~~~~~~~~
fmt/include/fmt/core.h:3073:17: note: candidate: ‘OutputIt fmt::v8::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = std::back_insert_iterator<basic_memory_buffer >; T = {std::__cxx11::basic_string<char, std::char_traits, std::allocator >&}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type = 0; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits, std::allocator >&>]’
3073 | FMT_INLINE auto format_to(OutputIt out, format_string<T...> fmt, T&&... args)
| ^~~~~~~~~
/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/format:3745:5: note: candidate: ‘_Out std::format_to(_Out, format_string<_Args ...>, _Args&& ...) [with _Out = back_insert_iterator<fmt::v8::basic_memory_buffer >; _Args = {__cxx11::basic_string<char, char_traits, allocator >&}; format_string<_Args ...> = basic_format_string<char, __cxx11::basic_string<char, char_traits, allocator >&>]’
3745 | format_to(_Out __out, format_string<_Args...> __fmt, _Args&&... __args)
| ^~~~~~~~~
make: *** [Makefile:117: src/emitrect.o] Error 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions