On Wed, 10 Nov 2021, 05:45 François Dumont, <frs.dum...@gmail.com> wrote:
> I can't see any clue on how my commit can have had an impact on below code. > Agreed. > I don't think libstdc++ hash table has any relation with gcc hash table. > Correct, it's totally unrelated. And "section type conflict" can't be caused by the library anyway. > Still, I'm rebuilding gcc at my revision to confirm. > > On 10/11/21 1:05 am, H.J. Lu wrote: > > On Mon, Nov 8, 2021 at 1:37 PM François Dumont via Gcc-patches > > <gcc-patches@gcc.gnu.org> wrote: > >> Yet another version this time with only 1 guard implementation. The > >> predicate to invalidate the safe iterators has been externalized. > >> > >> Ok to commit ? > >> > > This may have broken GCC bootstrap on Linux/x86-64: > > > > https://gcc.gnu.org/pipermail/gcc-regression/2021-November/075734.html > > > > In file included from ../../src-master/gcc/sanopt.c:22: > > In member function ‘hash_table<Descriptor, Lazy, > > Allocator>::value_type* hash_table<Descriptor, Lazy, > > Allocator>::alloc_entries(size_t) const [with Descriptor = > > hash_map<tree_node*, auto_vec<gimple*> >::hash_entry; bool Lazy = > > false; Allocator = xcallocator]’, > > inlined from ‘void hash_table<Descriptor, Lazy, > > Allocator>::expand() [with Descriptor = hash_map<tree_node*, > > auto_vec<gimple*> >::hash_entry; bool Lazy = false; Allocator = > > xcallocator]’ at ../../src-master/gcc/hash-table.h:802:40: > > ../../src-master/gcc/system.h:784:34: error: section type conflict > > with ‘void hash_table<Descriptor, Lazy, Allocator>::expand() [with > > Descriptor = hash_map<tree_node*, auto_vec<gimple*> >::hash_entry; > > bool Lazy = false; Allocator = xcallocator]’ > > 784 | ((void)(!(EXPR) ? fancy_abort (__FILE__, __LINE__, > > __FUNCTION__), 0 : 0)) > > | > ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > ../../src-master/gcc/hash-table.h:715:3: note: in expansion of macro > > ‘gcc_assert’ > > 715 | gcc_assert (nentries != NULL); > > | ^~~~~~~~~~ > > In file included from ../../src-master/gcc/coretypes.h:482, > > from ../../src-master/gcc/sanopt.c:23: > > ../../src-master/gcc/hash-table.h: In member function ‘void > > hash_table<Descriptor, Lazy, Allocator>::expand() [with Descriptor = > > hash_map<tree_node*, auto_vec<gimple*> >::hash_entry; bool Lazy = > > false; Allocator = xcallocator]’: > > ../../src-master/gcc/hash-table.h:779:1: note: ‘void > > hash_table<Descriptor, Lazy, Allocator>::expand() [with Descriptor = > > hash_map<tree_node*, auto_vec<gimple*> >::hash_entry; bool Lazy = > > false; Allocator = xcallocator]’ was declared here > > 779 | hash_table<Descriptor, Lazy, Allocator>::expand () > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > >