From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2140) id 870F03857C43; Fri, 29 Sep 2023 22:11:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 870F03857C43 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1696025486; bh=Krob7pKz9aaTdwtTE9vkpysDRjpheze6MAbeCLZmCko=; h=From:To:Subject:Date:From; b=OHwienXM0QIHNzKRWjRQoeiXgHYM6IzK2nYC/A7VQ9edAfWOyqH0xRxJ12vKbq25W UJ1ppBpDja/iSujvq73uxCe93aovICl9e4bb63y+5YMgu6P+stQE3AeumQ7QhOs0U+ ETDW6KmQLEa5mNk+PJrIY1MPRDDl6kq/P1ZiAq7M= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Alexandre Oliva To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/aoliva/heads/testme)] hardcfr: fix indirect jump X-Act-Checkin: gcc X-Git-Author: Alexandre Oliva X-Git-Refname: refs/users/aoliva/heads/testme X-Git-Oldrev: 0b1c956430bbc26137aaabbb7b1edad691d7e013 X-Git-Newrev: 5a047ddab777aa7f335a50aa982ebb3697cf86a8 Message-Id: <20230929221126.870F03857C43@sourceware.org> Date: Fri, 29 Sep 2023 22:11:26 +0000 (GMT) List-Id: https://gcc.gnu.org/g:5a047ddab777aa7f335a50aa982ebb3697cf86a8 commit 5a047ddab777aa7f335a50aa982ebb3697cf86a8 Author: Alexandre Oliva Date: Mon Jul 3 18:09:34 2023 -0300 hardcfr: fix indirect jump Diff: --- gcc/gimple-harden-control-flow.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/gimple-harden-control-flow.cc b/gcc/gimple-harden-control-flow.cc index ac4a329ebad..546837a450b 100644 --- a/gcc/gimple-harden-control-flow.cc +++ b/gcc/gimple-harden-control-flow.cc @@ -1321,9 +1321,13 @@ pass_harden_control_flow_redundancy::execute (function *fun) || bb == bb_eh_cleanup) : (!is_a (stmt) || !gimple_call_noreturn_p (stmt)) - ? (/* Catch cases in which successors would be + ? (stmt_can_make_abnormal_goto (stmt) + /* ??? Check before indirect nonlocal goto, or + calls thereof? */ + ? false + /* Catch cases in which successors would be expected. */ - gcc_unreachable (), false) + : (gcc_unreachable (), false)) : (!flag_exceptions || gimple_call_nothrow_p (as_a (stmt))) ? check_before_nothrow_noreturn_calls