From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id A00A9385840A; Thu, 8 Sep 2022 01:34:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A00A9385840A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1662600885; bh=/SQ+S5uLcDqK1gVmCgl5ushnG7XNUof2HjE74IW2csg=; h=From:To:Subject:Date:In-Reply-To:References:From; b=CsB4Pq5zdOZk0OkvVpG0khswGBpk+gIKTHo9ZAZHWoO7857hOrmjVdjoDDrR7gnf2 MYzhZ18ldhasECw7rj3JtT2XFO5CCLddl9fxJTqsz5BLoCmDYjsLXm3lKdfxMrroRe LexKXv7KEmWej3FJ5XyKF+G2RDWoCg8Nw9FCP1gg= From: "pinskia at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/106876] ICE in extract_insn with -mforce-indirect-call -fPIC -fprofile-generate Date: Thu, 08 Sep 2022 01:34:45 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: pinskia 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: 13.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cf_known_to_fail short_desc 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=3D106876 Andrew Pinski changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |8.1.0 Summary|[13 Regression] ICE in |ICE in extract_insn with |extract_insn, at |-mforce-indirect-call -fPIC |recog.cc:2791 since |-fprofile-generate |r13-465-g4df735e01e319997 | --- Comment #3 from Andrew Pinski --- A simple change like this (changing everything to struct causing everything= to be public) shows the problem has been there since GCC 8 (when -mforce-indirect-call support was added). ``` template struct base { friend void bar(Derived& d) { d.bar(); } }; struct derived : base { friend class base; void bar() {} }; int main() { derived d; bar(d); } ``` -mforce-indirect-call -fPIC -fprofile-generate -g0 ``` : In member function 'void derived::bar()': :11:15: error: unrecognizable insn: void bar() {} ^ (call_insn/u 6 3 7 2 (parallel [ (set (reg:DI 0 ax) (call:DI (mem:QI (symbol_ref:DI ("__tls_get_addr")) [0 S1 = A8]) (const_int 0 [0]))) (unspec:DI [ (symbol_ref:DI ("__gcov_indirect_call_callee") [flags 0= x50] ) (reg/f:DI 7 sp) ] UNSPEC_TLS_GD) ]) -1 (expr_list:REG_EH_REGION (const_int -2147483648 [0xffffffff80000000]) (nil)) (nil)) during RTL pass: vregs dump file: .235r.vregs :11:15: internal compiler error: in extract_insn, at recog.c:2304 ```=