From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 967523858436; Sat, 14 Oct 2023 07:16:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 967523858436 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1697267764; bh=seNMAPu1BJC6leQZY/j0hg6gHfsOMvIo6rKTFu4N+zg=; h=From:To:Subject:Date:In-Reply-To:References:From; b=JZfB+1TvQ9ilKB1fDi4j42ou3oo89CkxQ3aVK/wY9B/P7eScUQFq9l6ij4qqPak8P Z3WahZvFMFOhtT38YpFSzgxzHWo3kX17PoOJCmkwCEsAPAWNm6efXh/KmWK/bMsH38 E5Iwet5WDMiAzhUeZS1qGp4UQqwYpe/4q5a5srf4= From: "zhroma at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/98533] [11/12/13/14 Regression] ICE: 'verify_type' failed Date: Sat, 14 Oct 2023 07:16:03 +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: 11.0 X-Bugzilla-Keywords: ice-checking, ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: zhroma at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 11.5 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=3D98533 Roman Zhuykov changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |zhroma at gcc dot gnu.org --- Comment #9 from Roman Zhuykov --- Just adding another example where I caught the same error: $ cat test.cc=20 class IR; class Pass { public: explicit Pass(IR *ir) : ir_(ir) {} virtual ~Pass() =3D default; IR *ir_ {nullptr}; }; class PassManager { public: template void RunPass() { T pass(ir_); } IR *ir_ {nullptr}; }; class IR final { public:=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20 template void RunPass() { pass_manager_.RunPass(); } PassManager pass_manager_; }; class ThePass : Pass { public: explicit ThePass(IR *ir) : Pass(ir) {} ThePass(const ThePass &) =3D delete; template void Bar(void *inst, Func= func =3D [](void *) {}); }; void foo(IR *ir) { ir->RunPass(); } $ g++ -fchecking -g -c test.cc # any g++ from 8 to 13 test.cc:18:7: error: type variant has different =E2=80=98TYPE_FIELDS=E2=80= =99 18 | class ThePass : Pass { | ^~~~~~~