From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id E035D3858C52; Mon, 27 Feb 2023 18:10:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E035D3858C52 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1677521413; bh=160JXpzrwvS2+HChrI6n5W6JZPOgHXaXml+o8tfXVe8=; h=From:To:Subject:Date:In-Reply-To:References:From; b=x75VD2iATC8oFBuJtkv7HXFrekDXexAQLgcBA5zi1BSjgMjGwoV4gtLkonZZNbwo1 HmYdZnB3Q7eIKlKXOjMhhbY+L5SLyjPkGo8UxAaqYn/eWR9pQvqwIj5aR/THXv0C8k XV+u7KH54TxLO4ic3T/7yQbYa0XxlLnvrCBCYH9s= From: "mpolacek at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/108936] internal compiler error: in type_has_nontrivial_copy_init, at cp/tree.cc:4525 Date: Mon, 27 Feb 2023 18:10:13 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 12.2.1 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: mpolacek at gcc dot gnu.org X-Bugzilla-Status: NEW 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: cc Message-ID: In-Reply-To: References: 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 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D108936 Marek Polacek changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org --- Comment #2 from Marek Polacek --- template struct Endianness { static constexpr bool BigEndianHost =3D (union{short s;char c;}){1}.c != =3D 1; }; int main() { Endianness<>::BigEndianHost; } $ ./cc1plus -quiet bz.C bz.C: In instantiation of =E2=80=98constexpr const bool Endianness<>::BigEn= dianHost=E2=80=99: bz.C:9:17: required from here bz.C:4:69: internal compiler error: in type_has_nontrivial_copy_init, at cp/tree.cc:4631 4 | static constexpr bool BigEndianHost =3D (union{short s;char c;}){= 1}.c !=3D 1; | ~~~= ~^ 0x1058fa5 type_has_nontrivial_copy_init(tree_node const*) /home/mpolacek/src/gcc/gcc/cp/tree.cc:4631 0x1047c78 build_target_expr_with_type(tree_node*, tree_node*, int) /home/mpolacek/src/gcc/gcc/cp/tree.cc:904 0x1047e65 get_target_expr(tree_node*, int) /home/mpolacek/src/gcc/gcc/cp/tree.cc:948 0x10112be finish_compound_literal(tree_node*, tree_node*, int, fcl_t) /home/mpolacek/src/gcc/gcc/cp/semantics.cc:3356 0xfbfd62 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:21515 0xfb763b tsubst_non_call_postfix_expression /home/mpolacek/src/gcc/gcc/cp/pt.cc:19866 0xfbe98a tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:21314 0xfbab12 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:20576 0xfb7019 tsubst_expr(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:19775 0xfa50de tsubst_init /home/mpolacek/src/gcc/gcc/cp/pt.cc:17014 0xfd413b regenerate_decl_from_template /home/mpolacek/src/gcc/gcc/cp/pt.cc:26334 0xfd62e8 instantiate_body /home/mpolacek/src/gcc/gcc/cp/pt.cc:26651 0xfd8412 instantiate_decl(tree_node*, bool, bool) /home/mpolacek/src/gcc/gcc/cp/pt.cc:27006 0xdc8886 mark_used(tree_node*, int) /home/mpolacek/src/gcc/gcc/cp/decl2.cc:5840 0x1016792 finish_id_expression_1 /home/mpolacek/src/gcc/gcc/cp/semantics.cc:4252 0x1017079 finish_id_expression(tree_node*, tree_node*, tree_node*, cp_id_ki= nd*, bool, bool, bool*, bool, bool, bool, bool, char const**, unsigned int) /home/mpolacek/src/gcc/gcc/cp/semantics.cc:4398 0xed94b6 cp_parser_primary_expression /home/mpolacek/src/gcc/gcc/cp/parser.cc:6149 0xedd48c cp_parser_postfix_expression /home/mpolacek/src/gcc/gcc/cp/parser.cc:7777 0xee0e91 cp_parser_unary_expression /home/mpolacek/src/gcc/gcc/cp/parser.cc:9138 0xee243b cp_parser_cast_expression /home/mpolacek/src/gcc/gcc/cp/parser.cc:10044=