From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 04D23399C8B2; Wed, 9 Jun 2021 19:17:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 04D23399C8B2 From: "boris.staletic at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/101000] New: ICE when trying to import the absl/container/flat_hash_map.h as a header module Date: Wed, 09 Jun 2021 19:17:35 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 11.1.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: boris.staletic at gmail dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2021 19:17:36 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D101000 Bug ID: 101000 Summary: ICE when trying to import the absl/container/flat_hash_map.h as a header module Product: gcc Version: 11.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: boris.staletic at gmail dot com Target Milestone: --- Steps to repro: 0. Install Abseil from https://github.com/abseil/abseil-cpp 1. g++ -std=3Dc++20 -fmodules-ts -xc++-system-header absl/container/flat_hash_map.h 2. g++ -std=3Dc++20 -fmodules-ts main.cpp Output: In file included from /usr/include/c++/11.1.0/functional:54, from /usr/include/c++/11.1.0/pstl/glue_algorithm_defs.h:13, from /usr/include/c++/11.1.0/algorithm:74, from /usr/include/absl/algorithm/container.h:43, from /usr/include/absl/container/flat_hash_map.h:38, of module /usr/include/absl/container/flat_hash_map.h, imported at main.cpp= :1: /usr/include/c++/11.1.0/tuple: In instantiation of =E2=80=98constexpr std::= pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>) [with _Args1 =3D {const int&}; _Args2 =3D {const in= t&}; _T1 =3D std::tuple; _T2 =3D std::tuple]=E2=80=99: /usr/include/absl/container/internal/container_memory.h:182:52: required = from =E2=80=98std::pair, std::tuple > absl::container_internal::PairArgs(F&&, S&&) [with F =3D const int&; S =3D = const int&]=E2=80=99 /usr/include/absl/container/internal/container_memory.h:187:18: required = from =E2=80=98std::pair, std::tuple > absl::container_internal::PairArgs(const std::pair<_T1, _T2>&) [with F =3D = int; S =3D int]=E2=80=99 /usr/include/absl/container/internal/container_memory.h:207:35: required = from =E2=80=98decltype (absl::container_internal::memory_internal::DecomposePairImpl(forward(f), absl::container_internal::PairArgs((forward)(absl::container_internal= ::DecomposePair::args)...))) absl::container_internal::DecomposePair(F&&, Args&& ...) [with F =3D absl::container_internal::raw_hash_set, absl::hash_internal::Hash, std::equal_to, std::allocator > >::EmplaceDecomposable; Args =3D {const std::pair&}; decltype (absl::container_internal::memory_internal::DecomposePairImpl(forward(f), absl::container_internal::PairArgs((forward)(absl::container_internal= ::DecomposePair::args)...))) =3D std::pair, absl::hash_internal::Hash, std::equal_to, std::allocator > >::iterator, bool>]=E2=80=99 /usr/include/absl/container/flat_hash_map.h:580:51: required from =E2=80= =98static decltype (absl::container_internal::DecomposePair(declval(), (declval)()...)) absl::container_internal::FlatHashMapPolicy::apply(F&&, Args&& ...) [with F =3D absl::container_internal::raw_hash_set, absl::hash_internal::Hash, std::equal_to, std::allocator > >::EmplaceDecomposable; Args =3D {const std::pair&}; K =3D int; V =3D int; decltype (absl::container_internal::DecomposePair(declval(), (declval)()...= )) =3D std::pair, absl::hash_internal::Hash, std::equal_to, std::allocator > >::iterator, bool>]=E2=80=99 /usr/include/absl/container/internal/hash_policy_traits.h:170:20: required from =E2=80=98static decltype (P::apply(forward(f), (forward)(absl::container_internal::hash_policy_traits >::apply::ts)...)) absl::container_internal::hash_policy_traits >::apply(F&&, Ts&& ...) [with F =3D absl::container_internal::raw_hash_set, absl::hash_internal::Hash, std::equal_to, std::allocator > >::EmplaceDecomposable; Ts =3D {= const std::pair&}; P =3D absl::container_internal::FlatHashMapPolicy; Policy =3D absl::container_internal::FlatHashMapPolicy; =3D void; decltype (P::apply(forward(f), (forward)(absl::container_internal::hash_policy_traits >::apply::ts)...)) =3D std::pair, absl::hash_internal::Hash, std::equal_to, std::allocator > >::iterator, bool>]=E2=80=99 /usr/include/absl/container/internal/raw_hash_set.h:1129:31: required from =E2=80=98std::pair::iterator, bool> absl::container_internal::raw_hash_set::emplace(Args&& ...) [with Args =3D {const std::pair&}; typename std::enable_if, Hash, Eq, Ts ...>::va= lue, int>::type =3D 0; Policy =3D absl::container_internal::FlatHashMapPolicy; Hash =3D absl::hash_internal::Hash; Eq =3D std::equal_to; Alloc =3D std::allocator >]=E2=80=99 /usr/include/absl/container/internal/raw_hash_set.h:1085:43: required from =E2=80=98void absl::container_internal::raw_hash_set::insert(InputIt, InputIt) [with InputIt =3D const std::pair*; Policy =3D absl::container_internal::FlatHashMapPolicy; Hash =3D absl::hash_internal::Hash; Eq =3D std::equal_to; Alloc =3D std::allocator >]=E2=80=99 /usr/include/absl/container/internal/raw_hash_set.h:817:11: required from =E2=80=98absl::container_internal::raw_hash_set::raw_hash_set(InputIter, InputIter, size_t, const hasher&, const key_equal&, const allocator_type&) [with InputIter =3D const std::pair*; Policy =3D absl::container_internal::FlatHashMapPolicy; Ha= sh =3D absl::hash_internal::Hash; Eq =3D std::equal_to; Alloc =3D std::allocator >; size_t =3D long unsigned int; absl::container_internal::raw_hash_set::hasher =3D absl::hash_internal::Hash; absl::container_internal::raw_hash_set::key_equal =3D std::equal_to; absl::container_internal::raw_hash_set::allocator_= type =3D std::allocator >]=E2=80=99 /usr/include/absl/container/internal/raw_hash_set.h:864:77: required from =E2=80=98absl::container_internal::raw_hash_set::raw_hash_set(std::initializer_list::init_type>, size_t, c= onst hasher&, const key_equal&, const allocator_type&) [with Policy =3D absl::container_internal::FlatHashMapPolicy; Hash =3D absl::hash_internal::Hash; Eq =3D std::equal_to; Alloc =3D std::allocator >; typename absl::container_internal::hash_policy_traits::init_type =3D std::pair; size_t =3D long unsigned int; absl::container_internal::raw_hash_set::hasher =3D absl::hash_internal::Hash; absl::container_internal::raw_hash_set::key_equal =3D std::equal_to; absl::container_internal::raw_hash_set::allocator_= type =3D std::allocator >]=E2=80=99 /usr/include/absl/container/internal/raw_hash_map.h:62:37: required from = here /usr/include/c++/11.1.0/tuple:1759:14: internal compiler error: in tsubst_c= opy, at cp/pt.c:16660 1759 | : pair(__first, __second, | ^~~~~~~ 0x1797368 internal_error(char const*, ...) ???:0 0x67f8f9 fancy_abort(char const*, int, char const*) ???:0 0x7f5421 tsubst_tree_list(tree_node*, tree_node*, int, tree_node*) ???:0 0x7ea4ef instantiate_decl(tree_node*, bool, bool) ???:0 0x80659b instantiate_pending_templates(int) ???:0 0x7136c0 c_parse_final_cleanups() ???:0 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See for instructions. main.cpp: import ; int main(int argc, char *argv[]) { return absl::flat_hash_map{{1,2}}.size(); } I can also upload the compiled gcm file, but it's 16MB.=