From patchwork Tue Jul 12 12:25:32 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: 55960 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 F188E3815588 for ; Tue, 12 Jul 2022 12:30:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F188E3815588 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1657629030; bh=ywGfw2DBDU+cnwC6HszZIxRLsa6INAkxL3xIoMnADM4=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=EgMFGFK4/mELTcfkOQKKlCVxryRrqUc+gjR0ahG06HiRjb1G4MpIHMJByf1y6LYWq kkSIGPJDj6HOQj4Go8hoC8DWuyxJNMwUy2L89xyugwZDuz6G/L1CUAQMbayCGc5ZTu wYsJmM4ZNJY5iGe2zKaRtR6X4DwdpeHPf5Fywo/0= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) by sourceware.org (Postfix) with ESMTPS id 648E83836F88 for ; Tue, 12 Jul 2022 12:25:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 648E83836F88 Received: by mail-ed1-x533.google.com with SMTP id e15so9893093edj.2 for ; Tue, 12 Jul 2022 05:25:33 -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=ywGfw2DBDU+cnwC6HszZIxRLsa6INAkxL3xIoMnADM4=; b=GGlJdRIopfHquKg+Bhe+/P1EvB854LzIGRaG5OuoxWsYU1iQ+Un5eyD1NhmAu3+eL5 suKmTXWk6zSZWbnuCheRUaHlAhBoIKZwN15EJcypU3414JqV20aRex8FGuOM9xhfOI7O 7hbz24m1gNrqplo7UFp/Xar83aGwYKppxJRbqchVhgppxoUig2fONqQq4JuqucOBI8Wp ZQ+gqgYks/d7IaCoRupypfS9+Y/dZirOhf5guHSKcWy08W6KGNyayWzKVAzWY4a0az10 TRJwM5r52uxmM5f4DJ/sDg96HWXYsqzACqO4t7tn/8I6wcsttICZQrPgmjLK6YVkl05W 46fg== X-Gm-Message-State: AJIora+xhaYiqUYHds0Rpv58svHsRxWDPx9dCF7O43sKdXkY4GoVk8MA HCHstLacKmn4Rm4XvKoiefLY7yxxb4z4oQ== X-Google-Smtp-Source: AGRyM1sbRFzZ009V+YmoDXxz9IEMeTerH8boLB1ZKXRemgJ4FJKWYxR50HxyTjcIQs8hec+DEizr0A== X-Received: by 2002:a05:6402:5205:b0:43a:b520:c7de with SMTP id s5-20020a056402520500b0043ab520c7demr27646686edd.22.1657628733012; Tue, 12 Jul 2022 05:25:33 -0700 (PDT) Received: from adacore.com ([45.147.211.82]) by smtp.gmail.com with ESMTPSA id qx15-20020a170906fccf00b0072b1bc9b37fsm3733202ejb.22.2022.07.12.05.25.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Jul 2022 05:25:32 -0700 (PDT) Date: Tue, 12 Jul 2022 12:25:32 +0000 To: gcc-patches@gcc.gnu.org Subject: [Ada] Fix confusing error expression on an unknown restriction Message-ID: <20220712122532.GA3404917@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: Piotr Trojanek Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" When pragma Restriction is used with an unknown restriction identifier, it is better to not process the restriction expression, as it will likely produce confusing error message. In particular, an odd message appeared when there was a typo in the restriction identifier whose expression requires special processing (e.g. No_Dependence_On instead of No_Dependence). Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Do not process expression of unknown restrictions. diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -10792,13 +10792,15 @@ package body Sem_Prag is else R_Id := Get_Restriction_Id (Process_Restriction_Synonyms (Arg)); - Analyze_And_Resolve (Expr, Any_Integer); if R_Id not in All_Parameter_Restrictions then Error_Pragma_Arg ("invalid restriction parameter identifier", Arg); + end if; + + Analyze_And_Resolve (Expr, Any_Integer); - elsif not Is_OK_Static_Expression (Expr) then + if not Is_OK_Static_Expression (Expr) then Flag_Non_Static_Expr ("value must be static expression!", Expr); raise Pragma_Exit;