From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by sourceware.org (Postfix) with ESMTPS id 428FC3857402 for ; Tue, 8 Nov 2022 08:42:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 428FC3857402 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com Received: by mail-wr1-x430.google.com with SMTP id a14so19794576wru.5 for ; Tue, 08 Nov 2022 00:42:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=3CrPgAH826tSgafU3vXVMUPe7p/nXA0NWcDwGAaV2XM=; b=hM0MI2L8kB2g0/LAgSop5jNUauC0NutIg1VOId/icQVyoxBJZ6La+QgNOKTjyUb8xD 2D5oiaPNNjYcANZlg+WI2t5ThITu45RJkFj6XSksDng4AsgXFtycivjsYR+loYxE+4+Y WmU3FzIhOTrYy1nJv0fHEF97QamaJF1Ss0/dBxWx/deJE9kS+M8WGHzLVbIz5DXK1RXV d/7oYrybNJDyy1hNUnN4xEwKeFmPl8u9gusCSUsIHtQmzbfJtK+J+3Q7Zu2qHUEPTXdK hshStFPi+w1z0qLsJ4VdRunG0a/10IsIxL4TUgSIgRgGbPrTZn6j61UlGN/7ZOtY6fF2 15GA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=3CrPgAH826tSgafU3vXVMUPe7p/nXA0NWcDwGAaV2XM=; b=cBYE/t71ktCQ7zlSNG6ln06DiR34AUi69X35cx98QUBnoKfMTKGdNI1urrh0Q6IroF T19gKVjTI4ELra/ELw5q70Mlw2DbjvNT/8ynBmxCSBgQk1sfSd00sxmAvhPescveHXJv fe3DfFB4MI1o2lbFi5yJq4u+XNCwb/iBM42aybRSVcQEqxlGSS4mrKsY4OqWM4G6Sr7q rMgknuNCIbQ4AURGgEIm8HZgRZPsbL+1Ws3+t1PWL/fa2KDy7CrJJMbi6gYGDjEPYfen aUO0WJAUcXKj+wnSCCsg/GnypK4EOr1tvBCP7iFoquUlHBaNZqylrls+AM0m5DpLGXBm lPvQ== X-Gm-Message-State: ANoB5pkCKFY9TnxjvgP6iD8YEQ8SnsB77B2RQHJCx4Hzt+Tpy04FRNjc vM093I9LkxA8sw9IDByxcTVz2Ej8E4TzfQ== X-Google-Smtp-Source: AA0mqf5mXNAmIKSn9vl3iBcqRpzeDPiA6VoNwg2YhZaNxU0M+BLHihOEhlnU/QmArusMBw2JF/MUAg== X-Received: by 2002:a5d:544a:0:b0:236:77f4:6e15 with SMTP id w10-20020a5d544a000000b0023677f46e15mr12054409wrv.117.1667896950923; Tue, 08 Nov 2022 00:42:30 -0800 (PST) Received: from localhost.localdomain (static-176-191-105-132.ftth.abo.bbox.fr. [176.191.105.132]) by smtp.gmail.com with ESMTPSA id k8-20020a05600c168800b003cf47fdead5sm10311142wmn.30.2022.11.08.00.42.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Nov 2022 00:42:30 -0800 (PST) From: =?UTF-8?q?Marc=20Poulhi=C3=A8s?= To: gcc-patches@gcc.gnu.org Cc: Ronan Desplanques Subject: [COMMITTED] ada: Preanalyze classwide contracts as spec expressions Date: Tue, 8 Nov 2022 09:42:27 +0100 Message-Id: <20221108084227.301381-1-poulhies@adacore.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-13.4 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 autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: From: Ronan Desplanques Classwide contracts are "spec expressions" as defined in the documentation in sem.ads. Before this patch, the instances of classwide contracts that are destined to class conditions merging were not preanalyzed as spec expressions. That caused preanalysis to emit spurious errors in some cases. gcc/ada/ * contracts.adb (Preanalyze_Condition): Use Preanalyze_Spec_Expression. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/contracts.adb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/ada/contracts.adb b/gcc/ada/contracts.adb index a300d739eff..21f438f90f3 100644 --- a/gcc/ada/contracts.adb +++ b/gcc/ada/contracts.adb @@ -42,13 +42,13 @@ with Nmake; use Nmake; with Opt; use Opt; with Sem; use Sem; with Sem_Aux; use Sem_Aux; +with Sem_Ch3; use Sem_Ch3; with Sem_Ch6; use Sem_Ch6; with Sem_Ch8; use Sem_Ch8; with Sem_Ch12; use Sem_Ch12; with Sem_Ch13; use Sem_Ch13; with Sem_Disp; use Sem_Disp; with Sem_Prag; use Sem_Prag; -with Sem_Res; use Sem_Res; with Sem_Type; use Sem_Type; with Sem_Util; use Sem_Util; with Sinfo; use Sinfo; @@ -4755,7 +4755,7 @@ package body Contracts is Install_Formals (Subp); Inside_Class_Condition_Preanalysis := True; - Preanalyze_And_Resolve (Expr, Standard_Boolean); + Preanalyze_Spec_Expression (Expr, Standard_Boolean); Inside_Class_Condition_Preanalysis := False; Remove_Formals (Subp); -- 2.34.1