winlibs_mingw icon indicating copy to clipboard operation
winlibs_mingw copied to clipboard

Insane linking durations, easily avoidable but not mentioned.

Open xamidi opened this issue 3 years ago • 3 comments

When I linked my debug executable (which currently is over 162 MiB in size) with g++, I waited over 4 minutes every time. Until I got sick of it and figured out online that ld performs terribly on Windows due to some compatibility issues, and that LLVM's lld performs much better. So I tried g++ -Wl,--subsystem,windows -fuse-ld=lld and it now links in an unbelievable 1 second. (!)

I think this should be mentioned in the GCC + LLVM releases.

xamidi avatar Oct 07 '22 07:10 xamidi

I have the same experience, but with MSYS2's MINGW64 GCC. GNU Binutils is very inefficient on Windows.

ghost avatar Oct 10 '22 10:10 ghost

On a sidenote, GCC 12.2 also takes more than twice as long as GCC 11.3 to compile my code. (I've seen similar issues that have their own issue thread even.) Which can be very time consuming considering full rebuild durations of 25+ vs. 10+ minutes (single threaded).

An example that shows one should try different versions and not immediately use the latest one. So I'm currently compiling with GCC 11.3.0 and linking with LLVM 14.0.3's LLD of the same release. Still a little slower than on Linux, but not by much.

xamidi avatar Oct 13 '22 12:10 xamidi

Today I experienced this as well. As you can see in the attached image, gnu ld writes to disk at only 1.3 MB/s. I don't know how long it would take for it to complete so I just cancelled it.

Capture

ruanjiasing avatar Oct 20 '22 07:10 ruanjiasing

For speed testing purposes I have just made this release (it reverts binutils back to the previous version): https://github.com/brechtsanders/winlibs_mingw/releases/tag/12.2.1-snapshot20221126-10.0.0-msvcrt-r1

Can you try if this version works faster for you?

brechtsanders avatar Nov 27 '22 21:11 brechtsanders

I just fully rebuilt my project with three versions:

winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3 11m:52s.507ms

winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2 37m:26s.280ms

winlibs-x86_64-posix-seh-gcc-12.2.1-snapshot20221126-mingw-w64msvcrt-10.0.0-r1 37m:11s.485ms

So there is no improvement for that snapshot.

I built for release (small binary), so LD wasn't a performance issue (~4 seconds for all versions vs. few hundred milliseconds with LLD of both 11.3.0 and 12.2.0 – the snapshot doesn't contain LLD).

xamidi avatar Nov 28 '22 14:11 xamidi

I was able to build the version with precompiled headers enabled. Can you compare speed again? https://github.com/brechtsanders/winlibs_mingw/releases/tag/12.2.1-snapshot20221126-10.0.0-msvcrt-r2

brechtsanders avatar Nov 28 '22 20:11 brechtsanders

winlibs-x86_64-posix-seh-gcc-12.2.1-snapshot20221126-mingw-w64msvcrt-10.0.0-r2 37m:40s.406ms

I use Eclipse CDT's internal builder to build my project, and I don't think it somehow utilizes precompiled headers.

GCC 12 generates a lot more diagnostic output for Boost, oneTBB and wxWidgets, which probably contributes to the increased compile durations. My -I dependencies:

  • Boost.Algorithm, Boost.Iostreams, Boost.Multiprecision, Boost.Random (header-only ; 1.80.0)
    • MPIR 2.7.2 (dependency of Boost.Multiprecision)
  • Cairo 1.17.2
  • oneTBB 2021.6.0
  • wxWidgets 3.1.3

xamidi avatar Nov 29 '22 13:11 xamidi

I have tried to patch the PCH issue according to MSYS2's patches. Can you please check if the new release fixes any PCH and/or C++ compilation speed issues?

brechtsanders avatar Dec 30 '22 14:12 brechtsanders

winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3 14m:35s.682ms

winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3 44m:56s.325ms

I wondered that it was even slower, so I recompiled with GCC 11.3 immediately afterwards. But for my project using GCC 12.2 (release 3) really takes three times as long and is worse than for release 2..

xamidi avatar Dec 31 '22 10:12 xamidi

@xamidi Thanks for testing. Is the delay in compilation, linking or both? Because besides GCC C++ precompiled header issues I also think there are binutils (ld) speed issues. What was the binutils version (ld --version) in the faster build environment?

Also, are your Release builds also that slow, or only Debug builds?

Which project were you building there exactly? Maybe I can have a go at the same thing...

brechtsanders avatar Dec 31 '22 10:12 brechtsanders

As by my previous comment, these are full rebuild durations (compilation + linking), but since both versions

support -fuse-ld=lld, I used that, thus linking durations are below a second. So this is really about compilation performance (following the sidenote).

However, the requested ld version is GNU ld (Binutils for MinGW-W64 x86_64, built by Brecht Sanders) 2.38, and for the new version it is GNU ld (Binutils for MinGW-W64 x86_64, built by Brecht Sanders) 2.39.

I compiled my own (still private) research repo. But I'd be surprised if for any project that extensively uses Intel's oneTBB, it would be much different. (Due to many extra oneTBB-related -Wuninitialized warnings occuring when compiling with GCC 12.)

For example, diagnostics prints many of these twelve warnings repreatedly, and a lot of text for each occurence (all external, so I cannot resolve them):

Description	Resource	Path	Location	Type
'void* __builtin_memcpy(void*, const void*, long long unsigned int)' accessing 9223372036854775810 or more bytes at offsets [2, 9223372036854775807] and 1 may overlap up to 9223372036854775813 bytes at offset -3 [-Wrestrict]	ProofTool		line 431, external location: c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\char_traits.h	C/C++ Problem
bitwise operation between different enumeration types 'wxAlignment' and 'wxDirection' is deprecated [-Wdeprecated-enum-enum-conversion]	ProofTool		line 150, external location: D:\Dropbox\eclipse\wxWidgets-3.1.3\include\wx\pickerbase.h	C/C++ Problem
in C++20 this comparison calls the current function recursively with reversed arguments	ProofTool		line 3938, external location: D:\Dropbox\eclipse\wxWidgets-3.1.3\include\wx\string.h	C/C++ Problem
member 'tbb::detail::d1::segment_table<const std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> >*, tbb::detail::d1::cache_aligned_allocator<const std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> >*>, tbb::detail::d1::concurrent_vector<const std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> >*>, 3>::my_embedded_table' is used uninitialized [-Wuninitialized]	ProofTool		line 63, external location: d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail\_segment_table.h	C/C++ Problem
member 'tbb::detail::d1::segment_table<std::__cxx11::basic_string<char>, tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> >, tbb::detail::d1::concurrent_vector<std::__cxx11::basic_string<char>, tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> > >, 3>::my_embedded_table' is used uninitialized [-Wuninitialized]	ProofTool		line 63, external location: d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail\_segment_table.h	C/C++ Problem
member 'tbb::detail::d1::segment_table<std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >::unordered_segment_table, 63>::my_embedded_table' is used uninitialized [-Wuninitialized]	ProofTool		line 63, external location: d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail\_segment_table.h	C/C++ Problem
member 'tbb::detail::d1::segment_table<std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >, tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >, false> >::unordered_segment_table, 63>::my_embedded_table' is used uninitialized [-Wuninitialized]	ProofTool		line 63, external location: d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail\_segment_table.h	C/C++ Problem
member 'tbb::detail::d1::segment_table<std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> >, std::__cxx11::basic_string<char> > >, tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> >, std::__cxx11::basic_string<char>, xamid::nortmann::dlNumFormulaHash, xamid::nortmann::dlFormulaEqual, tbb::detail::d1::tbb_allocator<std::pair<const std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> >, std::__cxx11::basic_string<char> > >, false> >::unordered_segment_table, 63>::my_embedded_table' is used uninitialized [-Wuninitialized]	ProofTool		line 63, external location: d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail\_segment_table.h	C/C++ Problem
member 'tbb::detail::d1::segment_table<std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::vector<unsigned int>, std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> > > >, tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::vector<unsigned int>, std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> >, xamid::helper::myhash<std::vector<unsigned int> >, std::equal_to<std::vector<unsigned int> >, tbb::detail::d1::tbb_allocator<std::pair<const std::vector<unsigned int>, std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> > > >, false> >::unordered_segment_table, 63>::my_embedded_table' is used uninitialized [-Wuninitialized]	ProofTool		line 63, external location: d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail\_segment_table.h	C/C++ Problem
member 'tbb::detail::d1::segment_table<std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>, tbb::detail::d1::tbb_allocator<xamid::tree::TreeNode<xamid::helper::String>*>, tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_set_traits<xamid::tree::TreeNode<xamid::helper::String>*, std::hash<xamid::tree::TreeNode<xamid::helper::String>*>, std::equal_to<xamid::tree::TreeNode<xamid::helper::String>*>, tbb::detail::d1::tbb_allocator<xamid::tree::TreeNode<xamid::helper::String>*>, false> >::unordered_segment_table, 63>::my_embedded_table' is used uninitialized [-Wuninitialized]	ProofTool		line 63, external location: d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail\_segment_table.h	C/C++ Problem
member 'tbb::detail::d1::segment_table<std::pair<const std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> >*, std::__cxx11::basic_string<char> >, tbb::detail::d1::cache_aligned_allocator<std::pair<const std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> >*, std::__cxx11::basic_string<char> > >, tbb::detail::d1::concurrent_vector<std::pair<const std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> >*, std::__cxx11::basic_string<char> > >, 3>::my_embedded_table' is used uninitialized [-Wuninitialized]	ProofTool		line 63, external location: d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail\_segment_table.h	C/C++ Problem
member 'tbb::detail::d1::segment_table<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>, tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >, tbb::detail::d1::concurrent_vector<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>, tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> > >, 3>::my_embedded_table' is used uninitialized [-Wuninitialized]	ProofTool		line 63, external location: d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail\_segment_table.h	C/C++ Problem

Example output of a single occurence (two references in one source file) of the first warning (which, by the way, is a defect of GCC 12 + MinGW 10 itself!):

In file included from c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\ios:40,
                 from c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\ostream:38,
                 from c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\unique_ptr.h:41,
                 from c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\memory:76,
                 from ..\nortmann\../helper/ICloneable.h:4,
                 from ..\nortmann\DlProof.h:4,
                 from ..\nortmann\DlProof.cpp:1:
In static member function 'static constexpr std::char_traits<char>::char_type* std::char_traits<char>::copy(char_type*, const char_type*, std::size_t)',
    inlined from 'static constexpr void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy(_CharT*, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\basic_string.h:423:21,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\basic_string.tcc:532:22,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\basic_string.h:2171:19,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::insert(size_type, const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\basic_string.h:1928:22,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const _CharT*, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\basic_string.h:3541:36,
    inlined from 'xamid::nortmann::DlProof::fromMetamath(const std::string&, const std::string&, const std::string&, const std::map<std::__cxx11::basic_string<char>, unsigned int>&, bool)::<lambda(const std::string&)>' at ..\nortmann\DlProof.cpp:2716:24:
c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\char_traits.h:431:56: warning: 'void* __builtin_memcpy(void*, const void*, long long unsigned int)' accessing 9223372036854775810 or more bytes at offsets [2, 9223372036854775807] and 1 may overlap up to 9223372036854775813 bytes at offset -3 [-Wrestrict]
  431 |         return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
      |                                        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
In static member function 'static constexpr std::char_traits<char>::char_type* std::char_traits<char>::copy(char_type*, const char_type*, std::size_t)',
    inlined from 'static constexpr void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy(_CharT*, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\basic_string.h:423:21,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\basic_string.tcc:532:22,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\basic_string.h:2171:19,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::insert(size_type, const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\basic_string.h:1928:22,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const _CharT*, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\basic_string.h:3541:36,
    inlined from 'xamid::nortmann::DlProof::reduce(unsigned int, std::unordered_map<unsigned int, unsigned int>*, uint64_t, bool*, bool, bool*, bool*, bool) const::<lambda(const std::vector<std::vector<unsigned int> >&)>' at ..\nortmann\DlProof.cpp:3677:372,
    inlined from 'static std::string xamid::helper::FctHelper::vectorStringF(const std::vector<_Tp, _Alloc>&, const auto:31&, const std::string&, const std::string&, const std::string&) [with T = std::vector<std::vector<unsigned int> >; U = std::allocator<std::vector<std::vector<unsigned int> > >; auto:31 = xamid::nortmann::DlProof::reduce(unsigned int, std::unordered_map<unsigned int, unsigned int>*, uint64_t, bool*, bool, bool*, bool*, bool) const::<lambda(const std::vector<std::vector<unsigned int> >&)>]' at ..\nortmann\../helper/FctHelper.h:399:7,
    inlined from 'std::shared_ptr<xamid::nortmann::DlProof> xamid::nortmann::DlProof::reduce(unsigned int, std::unordered_map<unsigned int, unsigned int>*, uint64_t, bool*, bool, bool*, bool*, bool) const' at ..\nortmann\DlProof.cpp:3677:306:
c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.6-mingw-w64msvcrt-10.0.0-r3\mingw64\include\c++\12.2.0\bits\char_traits.h:431:56: warning: 'void* __builtin_memcpy(void*, const void*, long long unsigned int)' accessing 9223372036854775810 or more bytes at offsets [2, 9223372036854775807] and 1 may overlap up to 9223372036854775813 bytes at offset -3 [-Wrestrict]
  431 |         return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
      |                                        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~

Example output of a single occurence of the third warning (which occurs for almost every source file – around a hundred times, but it is one of only two warnings that also occur when using GCC 11.3):

In file included from D:/Dropbox/eclipse/wxWidgets-3.1.3/include/wx/memory.h:15,
                 from D:/Dropbox/eclipse/wxWidgets-3.1.3/include/wx/object.h:19,
                 from D:/Dropbox/eclipse/wxWidgets-3.1.3/include/wx/event.h:16,
                 from D:/Dropbox/eclipse/wxWidgets-3.1.3/include/wx/window.h:18,
                 from D:/Dropbox/eclipse/wxWidgets-3.1.3/include/wx/nonownedwnd.h:14,
                 from D:/Dropbox/eclipse/wxWidgets-3.1.3/include/wx/toplevel.h:20,
                 from ..\helper/FctHelper.h:4,
                 from ..\main.cpp:1:
D:/Dropbox/eclipse/wxWidgets-3.1.3/include/wx/string.h: In member function 'bool wxString::iterator::operator==(const wxString::const_iterator&) const':
D:/Dropbox/eclipse/wxWidgets-3.1.3/include/wx/string.h:3938:16: warning: in C++20 this comparison calls the current function recursively with reversed arguments
 3938 |     { return i == *this; }
      |              ~~^~~~~~~~

Using GCC 11.3, these two warnings still occur (much less output, which is why I guessed that the difference in performance is related to GCC's diagnostics – i.e. probably not Windows-related):

Description	Resource	Path	Location	Type
bitwise operation between different enumeration types 'wxAlignment' and 'wxDirection' is deprecated [-Wdeprecated-enum-enum-conversion]	ProofTool		line 150, external location: D:\Dropbox\eclipse\wxWidgets-3.1.3\include\wx\pickerbase.h	C/C++ Problem
in C++20 this comparison calls the current function recursively with reversed arguments	ProofTool		line 3938, external location: D:\Dropbox\eclipse\wxWidgets-3.1.3\include\wx\string.h	C/C++ Problem

I also verified that the same warnings occur for releases 2 and 3 of GCC 12.2. So I found it weird that release 3 was even slower (since diagnostics cannot explain that), so I compiled with release 2 again. Now:

winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2 44m:19s.355ms

So apparently my project simply changed in a way that GCC 12.2 takes even longer, whereas GCC 11.3 compiles it a little faster, and GCC's diagnostics is still a plausible sole cause for the performance gap.

xamidi avatar Dec 31 '22 13:12 xamidi

Could the slowness be in the console I/O? What happens if you redirect standard output and standard error to the NUL: device?

brechtsanders avatar Jan 02 '23 15:01 brechtsanders

No, it is the built-in console of Eclipse IDE, which can print that amount of text in a few milliseconds, not minutes. I never heard of any console that would be that slow.. :P

I'd suspect extra analysis taking place to be time-consuming. (Also there are a lot of longer delays between the printings.)

xamidi avatar Jan 02 '23 15:01 xamidi

I wouldn't count on it. Eclipse IDE is written in Java which can give all kinds of overhead.

Have you actually tried building from the command line (e.g. using a Makefile, or someting like CMake or Meson, preferably in combination with Ninja instead of make)?

brechtsanders avatar Jan 03 '23 09:01 brechtsanders

I wouldn't count on it. Eclipse IDE is written in Java which can give all kinds of overhead.

Which kind of overhead could lead to such horrible delays? Since the console printing duration doesn't. As I mentioned, it can print such large amounts of text without any noticable delay (and I do it a lot for debug output).

Your suspicion really doesn't make sense since Eclipse is merely a platform that calls other tools (e.g. in this case, many calls to g++ are made), and the console is asynchronously written by another thread (even another process in most cases) than where the actual work is done.

Have you actually tried building from the command line

Apart from that Eclipse's console is in fact a command line, there is an option to create makefiles in Eclipse and run them instead of the internal builder. Building then is in fact much slower than with Eclipse's internal builder (which makes sense since then there is the overhead to interprete makefiles – and they define many more instructions). So I stopped using them.

xamidi avatar Jan 03 '23 10:01 xamidi

I'm sorry to day I have zero experience with Eclipse myself as I simply refuse to install anything written in Java on my machine. I know, I'm biased due to past bad experiences....

Makefiles are terribly slow, and combined with autotools it's even worse with regards to speed on Windows in MSYS2 shell.

That's why a lot of projects switch to CMake or Meson, both of which work quite fast with Ninja as build tool.

But when I look at CMake I see it supports generating "Eclipse CDT4 - Ninja" as files to generate for building. Are you already using Ninja behind Eclipse?

brechtsanders avatar Jan 03 '23 13:01 brechtsanders

I simply refuse to install anything written in Java on my machine.

Java may be bad (and I've been refusing to write code in it for around 10 years), but a lot of software written in it isn't that bad. I disliked Eclipse a lot since school where we had to use (but didn't quite understand) it, until I figured out a decade later that it simply is the best general purpose IDE for my needs (of writing platform-independent C++ code under Windows, compilant with at least GCC and Clang while sharing the same project code over a cloud service on multiple machines, with UI-integrated Git support).

The worst thing about Eclipse IMO is that you have to reconfigure a lot of stuff for it to not suck (like disabling most of the pseudo warnings and errors that are not triggered by the compiler), so one has to know a lot about it. Setting a project up initially requires you to rummage through huge amounts of settings that you'll never need, and find what is actually relevant. But when everything is set up, maintenance overhead is minimal. The bad performance of its indexer also sucks (so under some circumstances one needs to wait a while until autocomplete works [again]).

Are you already using Ninja behind Eclipse?

No, and not planning to. (Because why not use the simplest option that works pretty well?)

xamidi avatar Jan 03 '23 14:01 xamidi

Regarding the high compilation duration issue, I have now uploaded a small project (that is part of the big project I mentioned), which shows the issue, to try yourself if you wish to.

So GCC 12 takes 12 times as long as GCC 11!

At first I tried with oneTBB 2021.6.0-1, but I verified that it's still the same with oneTBB 2021.8.0-1 (obtained from MSYS2 package mingw-w64-x86_64-tbb). They only have the latest version available as .zst archive, here are both as .7z (within .zip so GitHub will accept the upload): mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg.7z.zip mingw-w64-x86_64-tbb-2021.8.0-1-any.pkg.7z.zip

The full rebuild outputs:

19:00:33 **** Rebuild of configuration Release64bitDynamicGcc11.3 for project pmGenerator ****
Info: Internal Builder is used for build
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o nortmann\DlFormula.o ..\nortmann\DlFormula.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o metamath\DRuleParser.o ..\metamath\DRuleParser.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o metamath\DRuleReducer.o ..\metamath\DRuleReducer.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o nortmann\DlCore.o ..\nortmann\DlCore.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o helper\ProgressData.o ..\helper\ProgressData.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o nortmann\DlProofEnumerator.o ..\nortmann\DlProofEnumerator.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o nortmann\DlStructure.o ..\nortmann\DlStructure.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o grammar\CfgGrammar.o ..\grammar\CfgGrammar.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o main.o ..\main.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o helper\IPrintable.o ..\helper\IPrintable.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o helper\Resources.o ..\helper\Resources.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -o helper\FctHelper.o ..\helper\FctHelper.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3\mingw64\bin\g++ -o pmGenerator.exe ..\icon\icon_x64.res grammar\CfgGrammar.o helper\FctHelper.o helper\IPrintable.o helper\ProgressData.o helper\Resources.o main.o metamath\DRuleParser.o metamath\DRuleReducer.o nortmann\DlCore.o nortmann\DlFormula.o nortmann\DlProofEnumerator.o nortmann\DlStructure.o -s -LD:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/lib -Wl,--subsystem,windows -mwindows -fuse-ld=lld -lpthread -ltbb12.dll 
Info: Parallel threads used: 8

19:01:02 Build Finished. 0 errors, 0 warnings. (took 29s.74ms)
19:02:29 **** Rebuild of configuration Release64bitDynamicGcc12.2 for project pmGenerator ****
Info: Internal Builder is used for build
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o metamath\DRuleParser.o ..\metamath\DRuleParser.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o nortmann\DlCore.o ..\nortmann\DlCore.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o metamath\DRuleReducer.o ..\metamath\DRuleReducer.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o nortmann\DlStructure.o ..\nortmann\DlStructure.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o main.o ..\main.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o grammar\CfgGrammar.o ..\grammar\CfgGrammar.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o helper\FctHelper.o ..\helper\FctHelper.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o nortmann\DlProofEnumerator.o ..\nortmann\DlProofEnumerator.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o helper\Resources.o ..\helper\Resources.cpp 
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o nortmann\DlFormula.o ..\nortmann\DlFormula.cpp 
In file included from d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:24,
                 from d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\enumerable_thread_specific.h:26,
                 from d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:32,
                 from d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_map.h:21,
                 from D:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include/tbb/concurrent_map.h:17,
                 from ..\nortmann\DlCore.cpp:11:
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h: In instantiation of 'tbb::detail::d1::segment_table<T, Allocator, DerivedType, PointersPerEmbeddedTable>::segment_table(const allocator_type&) [with T = std::__cxx11::basic_string<char>; Allocator = tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> >; DerivedType = tbb::detail::d1::concurrent_vector<std::__cxx11::basic_string<char>, tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> > >; long long unsigned int PointersPerEmbeddedTable = 3; allocator_type = tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> >]':
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:284:26:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector(const allocator_type&) [with T = std::__cxx11::basic_string<char>; Allocator = tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:310:34:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector(InputIterator, InputIterator, const allocator_type&) [with InputIterator = const std::__cxx11::basic_string<char>*; T = std::__cxx11::basic_string<char>; Allocator = tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:342:60:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector(std::initializer_list<_Tp>, const allocator_type&) [with T = std::__cxx11::basic_string<char>; Allocator = tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> >]'
..\nortmann\DlCore.cpp:244:48:   required from here
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h:63:63: warning: member 'tbb::detail::d1::segment_table<std::__cxx11::basic_string<char>, tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> >, tbb::detail::d1::concurrent_vector<std::__cxx11::basic_string<char>, tbb::detail::d1::cache_aligned_allocator<std::__cxx11::basic_string<char> > >, 3>::my_embedded_table' is used uninitialized [-Wuninitialized]
   63 |         : my_segment_table_allocator(alloc), my_segment_table(my_embedded_table)
      |                                                               ^~~~~~~~~~~~~~~~~
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h: In instantiation of 'tbb::detail::d1::segment_table<T, Allocator, DerivedType, PointersPerEmbeddedTable>::segment_table(const allocator_type&) [with T = std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>; Allocator = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >; DerivedType = tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >, false> >::unordered_segment_table; long long unsigned int PointersPerEmbeddedTable = 63; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >]':
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:808:30:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::unordered_segment_table::unordered_segment_table(const base_allocator_type&) [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >, false>; base_allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:249:11:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::concurrent_unordered_base(size_type, const hasher&, const key_equal&, const allocator_type&) [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >, false>; size_type = long long unsigned int; hasher = std::hash<std::__cxx11::basic_string<char> >; key_equal = std::equal_to<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:251:81:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::concurrent_unordered_base() [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >, false>]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_unordered_map.h:75:5:   required from here
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h:63:63: warning: member 'tbb::detail::d1::segment_table<std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >, tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<xamid::helper::String> > >, false> >::unordered_segment_table, 63>::my_embedded_table' is used uninitialized [-Wuninitialized]
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h: In instantiation of 'tbb::detail::d1::segment_table<T, Allocator, DerivedType, PointersPerEmbeddedTable>::segment_table(const allocator_type&) [with T = std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>; Allocator = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >; DerivedType = tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >::unordered_segment_table; long long unsigned int PointersPerEmbeddedTable = 63; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >]':
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:808:30:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::unordered_segment_table::unordered_segment_table(const base_allocator_type&) [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false>; base_allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:249:11:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::concurrent_unordered_base(size_type, const hasher&, const key_equal&, const allocator_type&) [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false>; size_type = long long unsigned int; hasher = std::hash<std::__cxx11::basic_string<char> >; key_equal = std::equal_to<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:266:69:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::concurrent_unordered_base(InputIterator, InputIterator, size_type, const hasher&, const key_equal&, const allocator_type&) [with InputIterator = const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >*; Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false>; size_type = long long unsigned int; hasher = std::hash<std::__cxx11::basic_string<char> >; key_equal = std::equal_to<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:338:95:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::concurrent_unordered_base(std::initializer_list<typename Traits::value_type>, size_type, const hasher&, const key_equal&, const allocator_type&) [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false>; typename Traits::value_type = std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >; size_type = long long unsigned int; hasher = std::hash<std::__cxx11::basic_string<char> >; key_equal = std::equal_to<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_unordered_map.h:72:22:   required from here
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h:63:63: warning: member 'tbb::detail::d1::segment_table<std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >::unordered_segment_table, 63>::my_embedded_table' is used uninitialized [-Wuninitialized]
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h: In instantiation of 'tbb::detail::d1::segment_table<T, Allocator, DerivedType, PointersPerEmbeddedTable>::segment_table(const allocator_type&) [with T = tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>; Allocator = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >; DerivedType = tbb::detail::d1::concurrent_vector<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>, tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> > >; long long unsigned int PointersPerEmbeddedTable = 3; allocator_type = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >]':
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:284:26:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector(const allocator_type&) [with T = tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>; Allocator = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >; allocator_type = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:281:61:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector() [with T = tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>; Allocator = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\enumerable_thread_specific.h:868:5:   required from 'tbb::detail::d1::enumerable_thread_specific<T, Allocator, ETS_key_type>::enumerable_thread_specific(P1&&, P&& ...) [with P1 = unsigned int; P = {}; <template-parameter-2-3> = void; T = std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647>; Allocator = tbb::detail::d1::cache_aligned_allocator<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >; tbb::detail::d1::ets_key_usage_type ETS_key_type = tbb::detail::d1::ets_no_key]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:1266:46:   required from 'tbb::detail::d2::concurrent_geometric_level_generator<MaxLevel>::concurrent_geometric_level_generator() [with long long unsigned int MaxLevel = 32]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:291:104:   required from 'tbb::detail::d2::concurrent_skip_list<Traits>::concurrent_skip_list(const key_compare&, const allocator_type&) [with Traits = tbb::detail::d2::map_traits<std::__cxx11::basic_string<char>, std::vector<unsigned int>, std::less<std::__cxx11::basic_string<char> >, tbb::detail::d2::concurrent_geometric_level_generator<32>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::vector<unsigned int> > >, false>; key_compare = std::less<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::vector<unsigned int> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:299:43:   required from 'tbb::detail::d2::concurrent_skip_list<Traits>::concurrent_skip_list(InputIterator, InputIterator, const key_compare&, const allocator_type&) [with InputIterator = const std::pair<const std::__cxx11::basic_string<char>, std::vector<unsigned int> >*; Traits = tbb::detail::d2::map_traits<std::__cxx11::basic_string<char>, std::vector<unsigned int>, std::less<std::__cxx11::basic_string<char> >, tbb::detail::d2::concurrent_geometric_level_generator<32>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::vector<unsigned int> > >, false>; key_compare = std::less<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::vector<unsigned int> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:310:69:   required from 'tbb::detail::d2::concurrent_skip_list<Traits>::concurrent_skip_list(std::initializer_list<typename Traits::value_type>, const key_compare&, const allocator_type&) [with Traits = tbb::detail::d2::map_traits<std::__cxx11::basic_string<char>, std::vector<unsigned int>, std::less<std::__cxx11::basic_string<char> >, tbb::detail::d2::concurrent_geometric_level_generator<32>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::vector<unsigned int> > >, false>; typename Traits::value_type = std::pair<const std::__cxx11::basic_string<char>, std::vector<unsigned int> >; key_compare = std::less<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::vector<unsigned int> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_map.h:94:22:   required from here
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h:63:63: warning: member 'tbb::detail::d1::segment_table<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>, tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >, tbb::detail::d1::concurrent_vector<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>, tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> > >, 3>::my_embedded_table' is used uninitialized [-Wuninitialized]
In file included from d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:26,
                 from d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_unordered_map.h:21,
                 from D:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include/tbb/concurrent_unordered_map.h:17,
                 from ..\nortmann\DlProofEnumerator.h:6,
                 from ..\nortmann\DlProofEnumerator.cpp:1:
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h: In instantiation of 'tbb::detail::d1::segment_table<T, Allocator, DerivedType, PointersPerEmbeddedTable>::segment_table(const allocator_type&) [with T = std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>; Allocator = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >; DerivedType = tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >::unordered_segment_table; long long unsigned int PointersPerEmbeddedTable = 63; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >]':
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:808:30:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::unordered_segment_table::unordered_segment_table(const base_allocator_type&) [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false>; base_allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:249:11:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::concurrent_unordered_base(size_type, const hasher&, const key_equal&, const allocator_type&) [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false>; size_type = long long unsigned int; hasher = std::hash<std::__cxx11::basic_string<char> >; key_equal = std::equal_to<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:251:81:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::concurrent_unordered_base() [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false>]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_unordered_map.h:75:5:   required from here
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h:63:63: warning: member 'tbb::detail::d1::segment_table<std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >::unordered_segment_table, 63>::my_embedded_table' is used uninitialized [-Wuninitialized]
   63 |         : my_segment_table_allocator(alloc), my_segment_table(my_embedded_table)
      |                                                               ^~~~~~~~~~~~~~~~~
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o helper\ProgressData.o ..\helper\ProgressData.cpp 
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h: In instantiation of 'tbb::detail::d1::segment_table<T, Allocator, DerivedType, PointersPerEmbeddedTable>::segment_table(const allocator_type&) [with T = std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>; Allocator = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>* const, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >; DerivedType = tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<const std::__cxx11::basic_string<char>*, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, std::hash<const std::__cxx11::basic_string<char>*>, std::equal_to<const std::__cxx11::basic_string<char>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>* const, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >, false> >::unordered_segment_table; long long unsigned int PointersPerEmbeddedTable = 63; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>* const, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >]':
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:808:30:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::unordered_segment_table::unordered_segment_table(const base_allocator_type&) [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<const std::__cxx11::basic_string<char>*, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, std::hash<const std::__cxx11::basic_string<char>*>, std::equal_to<const std::__cxx11::basic_string<char>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>* const, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >, false>; base_allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>* const, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:249:11:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::concurrent_unordered_base(size_type, const hasher&, const key_equal&, const allocator_type&) [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<const std::__cxx11::basic_string<char>*, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, std::hash<const std::__cxx11::basic_string<char>*>, std::equal_to<const std::__cxx11::basic_string<char>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>* const, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >, false>; size_type = long long unsigned int; hasher = std::hash<const std::__cxx11::basic_string<char>*>; key_equal = std::equal_to<const std::__cxx11::basic_string<char>*>; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>* const, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:251:81:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::concurrent_unordered_base() [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<const std::__cxx11::basic_string<char>*, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, std::hash<const std::__cxx11::basic_string<char>*>, std::equal_to<const std::__cxx11::basic_string<char>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>* const, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >, false>]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_unordered_map.h:75:5:   required from here
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h:63:63: warning: member 'tbb::detail::d1::segment_table<std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>* const, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >, tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<const std::__cxx11::basic_string<char>*, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, std::hash<const std::__cxx11::basic_string<char>*>, std::equal_to<const std::__cxx11::basic_string<char>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>* const, tbb::detail::d1::solist_iterator<tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, false> >, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >, false> >::unordered_segment_table, 63>::my_embedded_table' is used uninitialized [-Wuninitialized]
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h: In instantiation of 'tbb::detail::d1::segment_table<T, Allocator, DerivedType, PointersPerEmbeddedTable>::segment_table(const allocator_type&) [with T = tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>; Allocator = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >; DerivedType = tbb::detail::d1::concurrent_vector<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>, tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> > >; long long unsigned int PointersPerEmbeddedTable = 3; allocator_type = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >]':
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:284:26:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector(const allocator_type&) [with T = tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>; Allocator = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >; allocator_type = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:281:61:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector() [with T = tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>; Allocator = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\enumerable_thread_specific.h:868:5:   required from 'tbb::detail::d1::enumerable_thread_specific<T, Allocator, ETS_key_type>::enumerable_thread_specific(P1&&, P&& ...) [with P1 = unsigned int; P = {}; <template-parameter-2-3> = void; T = std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647>; Allocator = tbb::detail::d1::cache_aligned_allocator<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >; tbb::detail::d1::ets_key_usage_type ETS_key_type = tbb::detail::d1::ets_no_key]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:1266:46:   required from 'tbb::detail::d2::concurrent_geometric_level_generator<MaxLevel>::concurrent_geometric_level_generator() [with long long unsigned int MaxLevel = 32]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:288:79:   required from 'tbb::detail::d2::concurrent_skip_list<Traits>::concurrent_skip_list() [with Traits = tbb::detail::d2::map_traits<unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*>, std::less<unsigned int>, tbb::detail::d2::concurrent_geometric_level_generator<32>, tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> > >, false>]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_map.h:97:5:   required from here
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h:63:63: warning: member 'tbb::detail::d1::segment_table<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>, tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >, tbb::detail::d1::concurrent_vector<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>, tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> > >, 3>::my_embedded_table' is used uninitialized [-Wuninitialized]
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h: In instantiation of 'tbb::detail::d1::segment_table<T, Allocator, DerivedType, PointersPerEmbeddedTable>::segment_table(const allocator_type&) [with T = const std::__cxx11::basic_string<char>*; Allocator = tbb::detail::d1::cache_aligned_allocator<const std::__cxx11::basic_string<char>*>; DerivedType = tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*>; long long unsigned int PointersPerEmbeddedTable = 3; allocator_type = tbb::detail::d1::cache_aligned_allocator<const std::__cxx11::basic_string<char>*>]':
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:284:26:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector(const allocator_type&) [with T = const std::__cxx11::basic_string<char>*; Allocator = tbb::detail::d1::cache_aligned_allocator<const std::__cxx11::basic_string<char>*>; allocator_type = tbb::detail::d1::cache_aligned_allocator<const std::__cxx11::basic_string<char>*>]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:281:61:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector() [with T = const std::__cxx11::basic_string<char>*; Allocator = tbb::detail::d1::cache_aligned_allocator<const std::__cxx11::basic_string<char>*>]'
c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\tuple:1818:2:   required from 'constexpr std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>) [with _Args1 = {unsigned int&&}; long long unsigned int ..._Indexes1 = {0}; _Args2 = {}; long long unsigned int ..._Indexes2 = {}; _T1 = const unsigned int; _T2 = tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*>]'
c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\tuple:1807:63:   required from 'constexpr std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>) [with _Args1 = {unsigned int&&}; _Args2 = {}; _T1 = const unsigned int; _T2 = tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*>]'
c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\bits\stl_construct.h:97:14:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\bits\alloc_traits.h:364:16:   required from 'static constexpr decltype (std::allocator_traits< <template-parameter-1-1> >::_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits< <template-parameter-1-1> >::construct::__args)...)) std::allocator_traits< <template-parameter-1-1> >::construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> >; _Args = {const std::piecewise_construct_t&, std::tuple<unsigned int&&>, std::tuple<>}; _Alloc = tbb::detail::d1::tbb_allocator<unsigned char>; decltype (std::allocator_traits< <template-parameter-1-1> >::_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits< <template-parameter-1-1> >::construct::__args)...)) = void]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:1111:41:   required from 'tbb::detail::d2::concurrent_skip_list<Traits>::list_node_type* tbb::detail::d2::concurrent_skip_list<Traits>::create_value_node(Args&& ...) [with Args = {const std::piecewise_construct_t&, std::tuple<unsigned int&&>, std::tuple<>}; Traits = tbb::detail::d2::map_traits<unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*>, std::less<unsigned int>, tbb::detail::d2::concurrent_geometric_level_generator<32>, tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> > >, false>; node_ptr = tbb::detail::d2::skip_list_node<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> >, tbb::detail::d1::tbb_allocator<unsigned char> >*]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:943:46:   required from 'std::pair<tbb::detail::d2::skip_list_iterator<tbb::detail::d2::skip_list_node<typename Traits::value_type, typename tbb::detail::d0::allocator_traits<typename Traits::allocator_type>::rebind_alloc<unsigned char> >, typename Traits::value_type>, bool> tbb::detail::d2::concurrent_skip_list<Traits>::internal_insert(Args&& ...) [with Args = {const std::piecewise_construct_t&, std::tuple<unsigned int&&>, std::tuple<>}; Traits = tbb::detail::d2::map_traits<unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*>, std::less<unsigned int>, tbb::detail::d2::concurrent_geometric_level_generator<32>, tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> > >, false>; typename Traits::value_type = std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> >; typename tbb::detail::d0::allocator_traits<typename Traits::allocator_type>::rebind_alloc<unsigned char> = std::allocator_traits<tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> > > >::rebind_alloc<unsigned char>; typename Traits::allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:435:31:   required from 'std::pair<tbb::detail::d2::skip_list_iterator<tbb::detail::d2::skip_list_node<typename Traits::value_type, typename tbb::detail::d0::allocator_traits<typename Traits::allocator_type>::rebind_alloc<unsigned char> >, typename Traits::value_type>, bool> tbb::detail::d2::concurrent_skip_list<Traits>::emplace(Args&& ...) [with Args = {const std::piecewise_construct_t&, std::tuple<unsigned int&&>, std::tuple<>}; Traits = tbb::detail::d2::map_traits<unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*>, std::less<unsigned int>, tbb::detail::d2::concurrent_geometric_level_generator<32>, tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> > >, false>; typename Traits::value_type = std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> >; typename tbb::detail::d0::allocator_traits<typename Traits::allocator_type>::rebind_alloc<unsigned char> = std::allocator_traits<tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> > > >::rebind_alloc<unsigned char>; typename Traits::allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_map.h:138:31:   required from 'tbb::detail::d2::concurrent_map<Key, Value, Compare, Allocator>::mapped_type& tbb::detail::d2::concurrent_map<Key, Value, Compare, Allocator>::operator[](key_type&&) [with Key = unsigned int; Value = tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*>; Compare = std::less<unsigned int>; Allocator = tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*> > >; mapped_type = tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*>; key_type = unsigned int]'
..\nortmann\DlProofEnumerator.cpp:904:89:   required from here
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h:63:63: warning: member 'tbb::detail::d1::segment_table<const std::__cxx11::basic_string<char>*, tbb::detail::d1::cache_aligned_allocator<const std::__cxx11::basic_string<char>*>, tbb::detail::d1::concurrent_vector<const std::__cxx11::basic_string<char>*>, 3>::my_embedded_table' is used uninitialized [-Wuninitialized]
In file included from d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:26,
                 from d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_unordered_map.h:21,
                 from D:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include/tbb/concurrent_unordered_map.h:17,
                 from ..\metamath\../nortmann/DlProofEnumerator.h:6,
                 from ..\metamath\DRuleReducer.cpp:6:
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h: In instantiation of 'tbb::detail::d1::segment_table<T, Allocator, DerivedType, PointersPerEmbeddedTable>::segment_table(const allocator_type&) [with T = std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>; Allocator = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow> > >; DerivedType = tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow> > >, false> >::unordered_segment_table; long long unsigned int PointersPerEmbeddedTable = 63; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow> > >]':
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:808:30:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::unordered_segment_table::unordered_segment_table(const base_allocator_type&) [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow> > >, false>; base_allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:249:11:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::concurrent_unordered_base(size_type, const hasher&, const key_equal&, const allocator_type&) [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow> > >, false>; size_type = long long unsigned int; hasher = std::hash<std::__cxx11::basic_string<char> >; key_equal = std::equal_to<std::__cxx11::basic_string<char> >; allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow> > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_unordered_base.h:251:81:   required from 'tbb::detail::d1::concurrent_unordered_base<Traits>::concurrent_unordered_base() [with Traits = tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow> > >, false>]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_unordered_map.h:75:5:   required from here
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h:63:63: warning: member 'tbb::detail::d1::segment_table<std::atomic<tbb::detail::d1::list_node<long long unsigned int>*>, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow> > >, tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, tbb::detail::d1::tbb_allocator<std::pair<const std::__cxx11::basic_string<char>, std::set<std::__cxx11::basic_string<char>, xamid::helper::cmpStringGrow> > >, false> >::unordered_segment_table, 63>::my_embedded_table' is used uninitialized [-Wuninitialized]
   63 |         : my_segment_table_allocator(alloc), my_segment_table(my_embedded_table)
      |                                                               ^~~~~~~~~~~~~~~~~
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h: In instantiation of 'tbb::detail::d1::segment_table<T, Allocator, DerivedType, PointersPerEmbeddedTable>::segment_table(const allocator_type&) [with T = tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>; Allocator = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >; DerivedType = tbb::detail::d1::concurrent_vector<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>, tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> > >; long long unsigned int PointersPerEmbeddedTable = 3; allocator_type = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >]':
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:284:26:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector(const allocator_type&) [with T = tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>; Allocator = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >; allocator_type = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:281:61:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector() [with T = tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>; Allocator = tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\enumerable_thread_specific.h:868:5:   required from 'tbb::detail::d1::enumerable_thread_specific<T, Allocator, ETS_key_type>::enumerable_thread_specific(P1&&, P&& ...) [with P1 = unsigned int; P = {}; <template-parameter-2-3> = void; T = std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647>; Allocator = tbb::detail::d1::cache_aligned_allocator<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >; tbb::detail::d1::ets_key_usage_type ETS_key_type = tbb::detail::d1::ets_no_key]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:1266:46:   required from 'tbb::detail::d2::concurrent_geometric_level_generator<MaxLevel>::concurrent_geometric_level_generator() [with long long unsigned int MaxLevel = 32]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:288:79:   required from 'tbb::detail::d2::concurrent_skip_list<Traits>::concurrent_skip_list() [with Traits = tbb::detail::d2::map_traits<unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >, std::less<unsigned int>, tbb::detail::d2::concurrent_geometric_level_generator<32>, tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > > >, false>]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_map.h:97:5:   required from here
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h:63:63: warning: member 'tbb::detail::d1::segment_table<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>, tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> >, tbb::detail::d1::concurrent_vector<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128>, tbb::detail::d1::cache_aligned_allocator<tbb::detail::d0::padded<tbb::detail::d1::ets_element<std::linear_congruential_engine<unsigned int, 48271, 0, 2147483647> >, 128> > >, 3>::my_embedded_table' is used uninitialized [-Wuninitialized]
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h: In instantiation of 'tbb::detail::d1::segment_table<T, Allocator, DerivedType, PointersPerEmbeddedTable>::segment_table(const allocator_type&) [with T = std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*>; Allocator = tbb::detail::d1::cache_aligned_allocator<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >; DerivedType = tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >; long long unsigned int PointersPerEmbeddedTable = 3; allocator_type = tbb::detail::d1::cache_aligned_allocator<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >]':
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:284:26:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector(const allocator_type&) [with T = std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*>; Allocator = tbb::detail::d1::cache_aligned_allocator<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >; allocator_type = tbb::detail::d1::cache_aligned_allocator<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_vector.h:281:61:   required from 'tbb::detail::d1::concurrent_vector<T, Allocator>::concurrent_vector() [with T = std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*>; Allocator = tbb::detail::d1::cache_aligned_allocator<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >]'
c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\tuple:1818:2:   required from 'constexpr std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>) [with _Args1 = {unsigned int&&}; long long unsigned int ..._Indexes1 = {0}; _Args2 = {}; long long unsigned int ..._Indexes2 = {}; _T1 = const unsigned int; _T2 = tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >]'
c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\tuple:1807:63:   required from 'constexpr std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>) [with _Args1 = {unsigned int&&}; _Args2 = {}; _T1 = const unsigned int; _T2 = tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >]'
c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\bits\stl_construct.h:97:14:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\bits\alloc_traits.h:364:16:   required from 'static constexpr decltype (std::allocator_traits< <template-parameter-1-1> >::_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits< <template-parameter-1-1> >::construct::__args)...)) std::allocator_traits< <template-parameter-1-1> >::construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > >; _Args = {const std::piecewise_construct_t&, std::tuple<unsigned int&&>, std::tuple<>}; _Alloc = tbb::detail::d1::tbb_allocator<unsigned char>; decltype (std::allocator_traits< <template-parameter-1-1> >::_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits< <template-parameter-1-1> >::construct::__args)...)) = void]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:1111:41:   required from 'tbb::detail::d2::concurrent_skip_list<Traits>::list_node_type* tbb::detail::d2::concurrent_skip_list<Traits>::create_value_node(Args&& ...) [with Args = {const std::piecewise_construct_t&, std::tuple<unsigned int&&>, std::tuple<>}; Traits = tbb::detail::d2::map_traits<unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >, std::less<unsigned int>, tbb::detail::d2::concurrent_geometric_level_generator<32>, tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > > >, false>; node_ptr = tbb::detail::d2::skip_list_node<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > >, tbb::detail::d1::tbb_allocator<unsigned char> >*]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:943:46:   required from 'std::pair<tbb::detail::d2::skip_list_iterator<tbb::detail::d2::skip_list_node<typename Traits::value_type, typename tbb::detail::d0::allocator_traits<typename Traits::allocator_type>::rebind_alloc<unsigned char> >, typename Traits::value_type>, bool> tbb::detail::d2::concurrent_skip_list<Traits>::internal_insert(Args&& ...) [with Args = {const std::piecewise_construct_t&, std::tuple<unsigned int&&>, std::tuple<>}; Traits = tbb::detail::d2::map_traits<unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >, std::less<unsigned int>, tbb::detail::d2::concurrent_geometric_level_generator<32>, tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > > >, false>; typename Traits::value_type = std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > >; typename tbb::detail::d0::allocator_traits<typename Traits::allocator_type>::rebind_alloc<unsigned char> = std::allocator_traits<tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > > > >::rebind_alloc<unsigned char>; typename Traits::allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_concurrent_skip_list.h:435:31:   required from 'std::pair<tbb::detail::d2::skip_list_iterator<tbb::detail::d2::skip_list_node<typename Traits::value_type, typename tbb::detail::d0::allocator_traits<typename Traits::allocator_type>::rebind_alloc<unsigned char> >, typename Traits::value_type>, bool> tbb::detail::d2::concurrent_skip_list<Traits>::emplace(Args&& ...) [with Args = {const std::piecewise_construct_t&, std::tuple<unsigned int&&>, std::tuple<>}; Traits = tbb::detail::d2::map_traits<unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >, std::less<unsigned int>, tbb::detail::d2::concurrent_geometric_level_generator<32>, tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > > >, false>; typename Traits::value_type = std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > >; typename tbb::detail::d0::allocator_traits<typename Traits::allocator_type>::rebind_alloc<unsigned char> = std::allocator_traits<tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > > > >::rebind_alloc<unsigned char>; typename Traits::allocator_type = tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > > >]'
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\concurrent_map.h:138:31:   required from 'tbb::detail::d2::concurrent_map<Key, Value, Compare, Allocator>::mapped_type& tbb::detail::d2::concurrent_map<Key, Value, Compare, Allocator>::operator[](key_type&&) [with Key = unsigned int; Value = tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >; Compare = std::less<unsigned int>; Allocator = tbb::detail::d1::tbb_allocator<std::pair<const unsigned int, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> > > >; mapped_type = tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >; key_type = unsigned int]'
..\metamath\DRuleReducer.cpp:111:89:   required from here
d:\dropbox\eclipse\mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg\mingw64\include\oneapi\tbb\detail/_segment_table.h:63:63: warning: member 'tbb::detail::d1::segment_table<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*>, tbb::detail::d1::cache_aligned_allocator<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >, tbb::detail::d1::concurrent_vector<std::pair<const std::__cxx11::basic_string<char>*, std::__cxx11::basic_string<char>*> >, 3>::my_embedded_table' is used uninitialized [-Wuninitialized]
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -ID:/Dropbox/eclipse/boost_1_80_0/include -ID:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/include -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -o helper\IPrintable.o ..\helper\IPrintable.cpp 
In file included from c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\ios:40,
                 from c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\ostream:38,
                 from c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\bits\unique_ptr.h:41,
                 from c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\memory:76,
                 from ..\nortmann\DlCore.h:9,
                 from ..\nortmann\DlCore.cpp:1:
In static member function 'static constexpr std::char_traits<char>::char_type* std::char_traits<char>::copy(char_type*, const char_type*, std::size_t)',
    inlined from 'static constexpr void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy(_CharT*, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\bits\basic_string.h:423:21,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\bits\basic_string.tcc:532:22,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\bits\basic_string.h:2171:19,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::insert(size_type, const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\bits\basic_string.h:1928:22,
    inlined from 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const _CharT*, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>]' at c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\bits\basic_string.h:3541:36,
    inlined from 'static std::string xamid::nortmann::DlCore::standardFormulaRepresentation(const std::shared_ptr<xamid::tree::TreeNode<xamid::helper::String> >&)' at ..\nortmann\DlCore.cpp:740:50:
c:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\include\c++\12.2.0\bits\char_traits.h:431:56: warning: 'void* __builtin_memcpy(void*, const void*, long long unsigned int)' accessing 9223372036854775810 or more bytes at offsets [2, 9223372036854775807] and 1 may overlap up to 9223372036854775813 bytes at offset -3 [-Wrestrict]
  431 |         return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
      |                                        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
C:\mingw-w64\winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r2\mingw64\bin\g++ -o pmGenerator.exe ..\icon\icon_x64.res grammar\CfgGrammar.o helper\FctHelper.o helper\IPrintable.o helper\ProgressData.o helper\Resources.o main.o metamath\DRuleParser.o metamath\DRuleReducer.o nortmann\DlCore.o nortmann\DlFormula.o nortmann\DlProofEnumerator.o nortmann\DlStructure.o -s -LD:/Dropbox/eclipse/mingw-w64-x86_64-tbb-2021.6.0-1-any.pkg/mingw64/lib -Wl,--subsystem,windows -mwindows -fuse-ld=lld -lpthread -ltbb12.dll 
Info: Parallel threads used: 8

19:08:36 Build Finished. 0 errors, 11 warnings. (took 6m:6s.879ms)

xamidi avatar Feb 24 '23 18:02 xamidi

@xamidi I just had a look at your pmGenerator project.

I was able to build it (see recipe here), but I got no warnings whatsoever unlike your output (using GCC 12.2.0 and building against TBB 2021.8.0). You are right that it's slow to build. On top of that there is no Makefile or any other build system, so my build was sequential and not using multiple cores.

I also notice TBB is just linked to, I'm not sure that's even related to the slowness.

Anyway, when building on my system with GCC 12.2.0 (most recent one from https://github.com/brechtsanders/winlibs_mingw/releases/tag/12.2.0-15.0.7-10.0.0-msvcrt-r4) it takes 36 seconds and with LLCM/CLang it takes 29 seconds, which is sort of what I expect since clang++ is usually faster than g++. I also tried GCC 11.3.0 but that took 95 seconds.

Have you tried building on different systems (other Windows version, no antivirus, etc...) ?

Can you try the last release of GCC 12.2.0 mentioned above?

brechtsanders avatar Feb 25 '23 16:02 brechtsanders

You used the x86_64 g++ variant, right?

Your script doesn't show any more compiler flags than -std=c++20, is that the only one you used? Note that I used compiler flags -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -pedantic -Wall -c -m64 -fmessage-length=0 -std=c++20 -D_FILE_OFFSET_BITS=64.

I just rebuilt with winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.7-mingw-w64msvcrt-10.0.0-r4, it took 5m:52s.273ms (8 threads ; all the warnings showed), then I tried without -pedantic, still 5m:41s.810ms, same warnings. Then I tried also without -Wall, no more warnings, but still 5m:33s.523ms, then I replaced the optimization flags -O3 -fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels with -O2, still 5m:42s.564ms.

I could also remove flags -m64 -fmessage-length=0 -D_FILE_OFFSET_BITS=64, but using only -c -std=c++20 together with my optimization flags didn't speed anything up, and with -Wall still showed those warnings.

Then -O0, only 1m:7s.179ms (8 threads). That's much faster, but building an unoptimized executable is kinda pointless.

I also executed the commands (with optimization) sequentially in a .sh file, and noticed that compiling Resources.cpp alone takes around 5 minutes for me, so regardless of the other files that are compiled on other threads, the multi-threaded compilation will always take around 5 minutes on my machine (with GCC 12.2). But with GCC 11.3, it only took 26s.27ms (8 threads), and compiling Resources.cpp alone only took around 10-15 seconds.

So did you reach those results without optimization and without -Wall?

But even with optimization, GCC 11.3 is faster on my machine than GCC 12.2 unoptimized..

Apparently, GCC 12 struggles with files that have large definitions, like this.

xamidi avatar Feb 25 '23 22:02 xamidi

On another note, what is the

# fix undefined weeks in helper/FctHelper.cpp
if ! ${CXX:-g++} --version|grep -q clang; then
 mv helper/FctHelper.cpp helper/FctHelper.cpp.bak &&
 echo "#include <date/iso_week.h>" > helper/FctHelper.cpp &&
 cat helper/FctHelper.cpp.bak >> helper/FctHelper.cpp
fi

in your script for? If you actually used GCC 12, there is, for example, using weeks = duration<_GLIBCXX_CHRONO_INT64_T, ratio<604800>>; at line 844 of winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.7-mingw-w64msvcrt-10.0.0-r4\mingw64\include\c++\12.2.0\bits\chrono.h, which is included in line 39 of winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.7-mingw-w64msvcrt-10.0.0-r4\mingw64\include\c++\12.2.0\chrono via #include <chrono> in helper/FctHelper.h.

So there shouldn't be any such issue as long as __cplusplus > 201703L.

C++20 should in general define std::chrono::weeks via #include <chrono>.

xamidi avatar Feb 26 '23 19:02 xamidi

@xamidi somehow I got errors with weeks/years missing when building with g++, but not when building with clang++

brechtsanders avatar Feb 26 '23 19:02 brechtsanders

@brechtsanders Then you're probably using a wrong source base when building with g++, which could also explain the missing warnings and different timing results. But I'll wait for your settings.

xamidi avatar Feb 26 '23 20:02 xamidi

@xamidi My codebase has built close to 3000 packages from source, nothing wrong with it. Have you considered using GitHub Actions to build it on different platforms, to see how your code builds elsewhere?

brechtsanders avatar Feb 26 '23 20:02 brechtsanders

@xamidi My codebase has built close to 3000 packages from source, nothing wrong with it. Have you considered using GitHub Actions to build it on different platforms, to see how your code builds elsewhere?

There is obviously something wrong with your setup, as I have proven already. Possibly an old g++ in PATH, or bad comliper flags. Just look at the files if you don't believe me. Also, have you missed my comment from yesterday?

Have you considered using GitHub Actions to build it on different platforms, to see how your code builds elsewhere?

No, but I have also built it on Ubuntu, Linux Mint and Cent OS. But this isn't even necessary, since my code complies with the C++20 standard, as already mentioned.

xamidi avatar Feb 26 '23 20:02 xamidi

@xamidi If you have a proper Makefile or build system like CMake or Meson in place for your project I'm willing to try it again if you like.

About your earlier post:

  • I don't expect warning levels to impact speed much (unless your console output is somehow slow).
  • Optimization levels will have speed impact, especially -O0 which disables the optimization work completely.
  • The large definition thing you mentioned is interesting, maybe you should report that to the GCC team, of it's reproducible on other platforms with GCC 12

brechtsanders avatar Feb 26 '23 20:02 brechtsanders

I don't expect warning levels to impact speed much

And it doesn't, as I have shown. You mentioned that you weren't given any warnings, which is because you didn't enable them, or because you used a wrong g++ version or code base (assuming you actually used oneTBB 2021.8.0).

Optimization levels will have speed impact

As I have mentioned. So the fast performance on your (alleged) GCC 12 may have been because you didn't enable optimization.

If you have a proper Makefile or build system like CMake or Meson in place for your project I'm willing to try it again if you like.

No need, I was just trying to help you. I generally do not waste my time with build scripts. There is software like GNU Automake for those who somehow need it, and every proper IDE can generate Makefiles. I dislike their concept. When having a proper project with uniformly designated compiler & linker flags, the building process is trivial:

  1. Compile every single source file in an arbitrary order to object files,
  2. Link all the object files together to an executable.

I have earlier quoted a batch of commands for pmGenerator.

The large definition thing you mentioned is interesting, maybe you should report that to the GCC team, of it's reproducible on other platforms with GCC 12

The Linux distrubutions I used have at most GCC 11. I might test it in the future, but then there probably is GCC 13+ already.

xamidi avatar Feb 26 '23 21:02 xamidi

I just built the following releases with optimization flags:

  • https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-16.0.5-11.0.0-msvcrt-r5
  • https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-16.0.5-11.0.0-ucrt-r5

Can you check if you see a speed improvement in your scenario?

brechtsanders avatar Jun 04 '23 08:06 brechtsanders

Can you check if you see a speed improvement in your scenario?

Yes, the issue of Resources.cpp taking ludicrous durations to compile, has been fixed for GCC 13.1!

  • winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3

      19:15:02 **** Rebuild of configuration Release64bitDynamicGcc11.3 for project pmGenerator ****
      [...]
      19:15:33 Build Finished. 0 errors, 31 warnings. (took 31s.868ms)
    
  • winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.7-mingw-w64msvcrt-10.0.0-r4

      19:01:04 **** Rebuild of configuration Release64bitDynamic for project pmGenerator ****
      [...]
      19:06:49 Build Finished. 0 errors, 3 warnings. (took 5m:44s.623ms)
    
  • winlibs-x86_64-posix-seh-gcc-13.1.0-llvm-16.0.5-mingw-w64msvcrt-11.0.0-r5

      19:11:39 **** Rebuild of configuration Release64bitDynamic for project pmGenerator ****
      [...]
      19:12:14 Build Finished. 0 errors, 7 warnings. (took 34s.984ms)
    

The issue with high linking durations for debug executables without -fuse-ld=lld remains:

  • 3m:37s.128ms with GNU Linker to link a 204 MiB executable
  • 1s.337ms with LLVM Linker to link a 170 MiB executable (based on the same object files)

xamidi avatar Jun 04 '23 18:06 xamidi

Good to hear compiler speeds are good again now.

As for the linker: ld can't take advantage of multiple cores and is generally slow. LLVM's lld is much better performance-wise.

I'm not 100% sure it's a good idea to mix GCC's compiler with LLVM's linker though, so I would avoid this for release/production builds.

brechtsanders avatar Jun 05 '23 08:06 brechtsanders

Not sure why you closed this, when only the side issue (compile duration) was resolved. The main issue was about link duration of big debug files, and -fuse-ld=lld not being mentioned in your releases.

The issue with high linking durations for debug executables without -fuse-ld=lld remains

I'm not 100% sure it's a good idea to mix GCC's compiler with LLVM's linker though, so I would avoid this for release/production builds.

Both linkers use the same file formats and I never experienced or heard of any issue with that. Avoiding lld not for technical reasons but for a gut feeling doesn't seem very reasonable.

xamidi avatar Jul 18 '23 00:07 xamidi