From patchwork Tue May 17 08:27:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Marie de Rodat X-Patchwork-Id: 54074 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 78964385741C for ; Tue, 17 May 2022 08:40:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 78964385741C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1652776833; bh=aBzmsdDQzrJ7Pp3afGJn01M7KpgCwmue2Fn/Q4RBbnM=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=kGcTwhUeC57LAczTuaBXXThYD71Dyb/u/INpMjnnoHnfa6WtOuigkK61lL0ldb7sp u3ITwGly5qjHeJQvuQc8+78X9wdRMu75PikaINm7GVrEw44bMqdQmZRmBcxboMRE4t OmJOd+rfC+QMoieDZgow7CU4/qqJ24vmLv0Xmc/M= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) by sourceware.org (Postfix) with ESMTPS id 5C9B2385741C for ; Tue, 17 May 2022 08:27:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5C9B2385741C Received: by mail-wr1-x42c.google.com with SMTP id g17so5506412wrb.11 for ; Tue, 17 May 2022 01:27:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition; bh=aBzmsdDQzrJ7Pp3afGJn01M7KpgCwmue2Fn/Q4RBbnM=; b=QHaxsloxapvdFA3zL1zT2Yj/uKvQlnxFgSTjERCJ1Tm4gHY2tVL8gQgtZrD5LPci6m Eg+FrirPay0nXQLhCyvD410ACxWxFgl5VIgxhwNIqV8Y84LqJbN2TNsG4ThI3BkwVvRl Jq/TnQzqQyvSTXyArZeMvSG7ROwOoxg5/8/GzMwi5K+DmlHqy1M8EMginC/DdJ9wRKQW 9HVNZ1kRKgYqUH8xUXHfNST60CppsRkKu56WEIR25KEFuHR5KkpCSKfkECxraVA2WOv4 wxV51sIP7JVAuUUq4MHzd89JI/5/AxAvtA3Ym62jC7DfSwoywb0WA2ZbHaN2pGtkDsFz MizA== X-Gm-Message-State: AOAM533tVhX6VkrsBMIbcH8icnhmjog5mmIO/4f1d5VVEiHjuzWdXkkP NB/KRfcdsck3E8Z7ykjrrieoCDIytm1vygEl X-Google-Smtp-Source: ABdhPJxk3IXBc+yFMgaIQNBRi3fS651AGE0JIr11SIR7e897XLcgXmcTu4yN1aaCOAQY6TjJ0KxEIA== X-Received: by 2002:adf:cd06:0:b0:20d:a8a:c096 with SMTP id w6-20020adfcd06000000b0020d0a8ac096mr6798645wrm.637.1652776060243; Tue, 17 May 2022 01:27:40 -0700 (PDT) Received: from adacore.com ([45.147.211.82]) by smtp.gmail.com with ESMTPSA id n6-20020a05600c500600b00395b809dfd3sm1293269wmr.12.2022.05.17.01.27.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 May 2022 01:27:39 -0700 (PDT) Date: Tue, 17 May 2022 08:27:39 +0000 To: gcc-patches@gcc.gnu.org Subject: [Ada] Don't create calls to Abort_Undefer when not Abort_Allowed Message-ID: <20220517082739.GA1089177@adacore.com> MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-13.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Pierre-Marie de Rodat via Gcc-patches From: Pierre-Marie de Rodat Reply-To: Pierre-Marie de Rodat Cc: Ghjuvan Lacambre Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Prevent creation of references to Abort_Undefer when aborts aren't allowed. Another solution could have been an early return at Expand_N_Asynchronous_Select's beginning, but this would break backends that currently expect trees that do not contain any N_Asynchronous_Selects in their AST (e.g. CodePeer). Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * exp_ch9.adb (Expand_N_Asynchronous_Select): Don't generate Abort_Undefers when not Abort_Allowed. diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb --- a/gcc/ada/exp_ch9.adb +++ b/gcc/ada/exp_ch9.adb @@ -7812,7 +7812,9 @@ package body Exp_Ch9 is Hdle := New_List (Build_Abort_Block_Handler (Loc)); - Prepend_To (Astats, Build_Runtime_Call (Loc, RE_Abort_Undefer)); + if Abort_Allowed then + Prepend_To (Astats, Build_Runtime_Call (Loc, RE_Abort_Undefer)); + end if; Abortable_Block := Make_Block_Statement (Loc,