From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2140) id 440803858D37; Thu, 29 Jun 2023 18:42:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 440803858D37 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1688064123; bh=N+YFYhTm6+uaY6/sONT6mDLNQRQ44I9S3RQShZx9eVE=; h=From:To:Subject:Date:From; b=rocWdakOh9cRwS49//N8olTpK7eiWbkljM2Omc5m+XP2GuSuWqMgw8tdpIMjkDQAt f3xAgeydXWaoLtLyA5MUgq0UqWD+ApljOzkajiOax9ChvsaqI5Lygfovti8TwB7l4m Me+JurOr6hySxo0APukaqmgK1RKz4ZFFEEUH00oU= 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: 60c0f32166986b0f8fbe0c1b1abfd1b61cde810b X-Git-Newrev: fe2e54ad3bdde9b6a52e389ad9d8c5f8f5e2878f Message-Id: <20230629184203.440803858D37@sourceware.org> Date: Thu, 29 Jun 2023 18:42:03 +0000 (GMT) List-Id: https://gcc.gnu.org/g:fe2e54ad3bdde9b6a52e389ad9d8c5f8f5e2878f commit fe2e54ad3bdde9b6a52e389ad9d8c5f8f5e2878f Author: Alexandre Oliva Date: Thu Jun 29 15:38:13 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