From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7871) id CE4003858421; Tue, 8 Nov 2022 08:40:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CE4003858421 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667896836; bh=nLIusdpgRhO2k6yoFsD/+Bej2VxPoCYX6JCVGt80suA=; h=From:To:Subject:Date:From; b=WJulz/RkPP6dpzYY76XOUZNTrKZhoVbpegJgzTT9Dxh4EKVgXcwoHebYR/d9xQw9O YOovkDHimZqqP9/hwn4lJMAUrcFdAsAgdhyloOZPR+kjYPCXDtQ3WWxO5WL0omV7Iw dfWqHfqfVDoUL6msoUyVCTXCm0F/Rabd3u7x46+M= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Marc Poulhi?s To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-3778] ada: Reject record delta aggregates with limited expressions X-Act-Checkin: gcc X-Git-Author: Piotr Trojanek X-Git-Refname: refs/heads/master X-Git-Oldrev: b9d8ad7175359f7a6dfd803fcc3b3f619301e734 X-Git-Newrev: 4a22fdac0f6e79478768e6792c9804816ecb3f4a Message-Id: <20221108084036.CE4003858421@sourceware.org> Date: Tue, 8 Nov 2022 08:40:33 +0000 (GMT) List-Id: https://gcc.gnu.org/g:4a22fdac0f6e79478768e6792c9804816ecb3f4a commit r13-3778-g4a22fdac0f6e79478768e6792c9804816ecb3f4a Author: Piotr Trojanek Date: Thu Oct 14 12:48:12 2021 +0200 ada: Reject record delta aggregates with limited expressions Implement a missing check related to record delta aggregates. gcc/ada/ * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reject expressions of a limited types. Diff: --- gcc/ada/sem_aggr.adb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb index 31ce9cadd94..383f18f7301 100644 --- a/gcc/ada/sem_aggr.adb +++ b/gcc/ada/sem_aggr.adb @@ -3746,7 +3746,17 @@ package body Sem_Aggr is ("'<'> in record delta aggregate is not allowed", Assoc); else Analyze_And_Resolve (Expression (Assoc), Comp_Type); + + -- The expression must not be of a limited type; RM 4.3.1(17.4/5) + + if Is_Limited_Type (Etype (Expression (Assoc))) then + Error_Msg_N + ("expression of a limited type in record delta aggregate " & + "is not allowed", + Expression (Assoc)); + end if; end if; + Next (Assoc); end loop; end Resolve_Delta_Record_Aggregate;