From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id D59A33858D35; Mon, 22 Apr 2024 15:45:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D59A33858D35 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1713800733; bh=wA89GNOtRpkGT8LfpEyDLONyQi7H5qNv6fyq39WYqko=; h=From:To:Subject:Date:In-Reply-To:References:From; b=eqnSQ7tTg/o0NVRd9oXeqHAiaoGv9iQiEIEMcbkcR7BXpLXhzsTNLrc9ntvi+tc65 sECHVq4V4glP+JBITRmxrFQyOxGCdn4XN7r46O2yKMKJ4A4Q3Qk07XsWMOBDJfBkjn ED4qFA58YTV0C9kiDSnYxJorzl08fhLSGak717OA= From: "stefansf at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/114432] [13 Regression] ICE in connect_traces, at dwarf2cfi.cc:3079 on s390x-linux-gnu Date: Mon, 22 Apr 2024 15:45:30 +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.2.1 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: stefansf at gcc dot gnu.org 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: 13.3 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: 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=3D114432 --- Comment #4 from Stefan Schulze Frielinghaus --- Ignore the previous comment. With -fstack-check and -mbackchain we have for trace 2 an incoming edge from trace 1 (fallthrough) where cur_trace->end_true_args_size =3D=3D 48 and from further incoming edges as = e.g. from trace 7 where cur_trace->end_true_args_size =3D=3D 0 which is why the args_size is supposed to be undefined. Interestingly, trace 2 resides in the function body whereas trace 7 resides= in the epilogue, i.e., we have a jump from the epilogue into the function body: (note 597 810 634 NOTE_INSN_PROLOGUE_END) ... (insn 635 677 566 (set (reg/f:DI 15 %r15) (plus:DI (reg/f:DI 15 %r15) (const_int 8216 [0x2018]))) "libalog-0.6.2/src/alog-active_logger.adb":244:4 1481 {*la_64} (expr_list:REG_ARGS_SIZE (const_int 48 [0x30]) (nil))) ... (code_label 48 573 49 152 (nil) [2 uses]) ... (note 673 768 599 NOTE_INSN_EPILOGUE_BEG) ... (insn 159 163 160 (set (reg/f:DI 15 %r15) (reg/f:DI 6 %r6 [orig:79 saved_stack.186_50 ] [79])) "libalog-0.6.2/src/alog-active_logger.adb":260:0 discrim 10 1477 {*movdi_64} (expr_list:REG_DEAD (reg/f:DI 6 %r6 [orig:79 saved_stack.186_50 ] [79]) (expr_list:REG_ARGS_SIZE (const_int 0 [0]) (nil)))) ... (jump_insn 645 644 646 (set (pc) (label_ref 48)) 2170 {*jump64} (nil) -> 48) This is also the case when -fno-shrink-wrap is used.=