From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by sourceware.org (Postfix) with ESMTPS id 706E7385AFA8 for ; Tue, 18 Jul 2023 13:13:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 706E7385AFA8 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-x42f.google.com with SMTP id ffacd0b85a97d-3142970df44so5390060f8f.3 for ; Tue, 18 Jul 2023 06:13:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1689686021; x=1690290821; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=pDakOHGt7L4Lr3TZVIJMT6J9f5wgcNC/cXU7Nuuud8U=; b=LOIUhGkw5u1ddgnIBrWXM542u2skcgwdJbTDPpcXyazkipvwcqYa/hf+4PnF9/b7xi QJnq0Vgo3aN3qVF/rwRdf66zqPOH14SI/2Vg36tI0QZQQ0czR4YKhij8nJqPK5/ak9Sk Yqmzrhd1T6eOs6WO5jAWoW2UeN8xO9KEu9yzNoLrPkritJvXMlTBVl+9na7YuatseVm/ J8VbwL2l5t9AJWm9+YgNW+s7WM4rbgQVA1nXuwhYtUcaVHpLyMvf4SdBUH0RK5W7Lf3O MxhFy9n2inWKxPUPNTSdcGNexZVuv7b3pEtV1Lrh3p7xgRSyhR29D1N5s8tjzktruTNj /4Eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689686021; x=1690290821; 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=pDakOHGt7L4Lr3TZVIJMT6J9f5wgcNC/cXU7Nuuud8U=; b=VSCf0aaDTP79QfQOnaYCrvTFEppTfXuNuFTsdHkGs7v7GiQKc3j4YjcYQs95FUoGsz MxsZlB9gadKv1+DkEQgELqCsxuKt+dVdszQvZqobF5c6CR5wAu91z8y0gDKiW3s8zI/3 jEjdFDOGuP0v901kXCDIxOC0GFoRtba/+H0FYlwZWKBVnX+ulobjfJ42JGCkaBxW8N0R q95SdMLBmFqiDvcM3B2z71tqO6RC1qRa4bmjGcvUrwoMvdPu1pVx1JHwbvFxUvuQmusj qf6aeZOxP1dzb26G0Ax5rZi8cBVfC3konl3JOYWFd2GqcKTxKFn0EsxN0IEq3ZuvZ/+y U5bw== X-Gm-Message-State: ABy/qLaqIsVJdMhPtWb6VJ1FnEs8v3aNcCHAsLZEmUI+4h1YMfn4uoIu Kek5Ku7/VgA5jILkC8iJyq9c6w+y0Bvi8il6D6rxkA== X-Google-Smtp-Source: APBJJlFh5MaYl35MuZb5gLsSst6Zs9zJHopyC/VK36q97RmNymKGvraPGz47YsOuAxDzQ1AsMGRzWg== X-Received: by 2002:adf:e787:0:b0:315:8f4f:81b1 with SMTP id n7-20020adfe787000000b003158f4f81b1mr12645595wrm.50.1689686021486; Tue, 18 Jul 2023 06:13:41 -0700 (PDT) Received: from poulhies-Precision-5550.telnowedge.local (lmontsouris-659-1-24-67.w81-250.abo.wanadoo.fr. [81.250.175.67]) by smtp.gmail.com with ESMTPSA id y10-20020adff14a000000b003112ab916cdsm2395908wro.73.2023.07.18.06.13.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jul 2023 06:13:40 -0700 (PDT) From: =?UTF-8?q?Marc=20Poulhi=C3=A8s?= To: gcc-patches@gcc.gnu.org Cc: Viljar Indus Subject: [COMMITTED] ada: Apply correct element type for container aggregates Date: Tue, 18 Jul 2023 15:13:40 +0200 Message-Id: <20230718131340.81451-1-poulhies@adacore.com> X-Mailer: git-send-email 2.40.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-13.7 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 List-Id: From: Viljar Indus When dealing with a container aggregate with an iterator specification the iterator should take the value of the element of the container instead of the key. gcc/ada/ * sem_aggr.adb (Resolve_Iterated_Association): Use the element type for the iterator in a container aggregate with an iterator specification. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_aggr.adb | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb index 5bfbde5052b..ecd508a66f8 100644 --- a/gcc/ada/sem_aggr.adb +++ b/gcc/ada/sem_aggr.adb @@ -3228,6 +3228,8 @@ package body Sem_Aggr is Analyze_And_Resolve (New_Copy_Tree (Key_Expr), Key_Type); End_Scope; + Typ := Key_Type; + elsif Present (Iterator_Specification (Comp)) then Copy := Copy_Separate_Tree (Iterator_Specification (Comp)); Id_Name := @@ -3252,7 +3254,7 @@ package body Sem_Aggr is elsif Present (Key_Type) then Analyze_And_Resolve (Choice, Key_Type); - + Typ := Key_Type; else Typ := Etype (Choice); -- assume unique for now end if; @@ -3282,12 +3284,8 @@ package body Sem_Aggr is Enter_Name (Id); - if No (Key_Type) then - pragma Assert (Present (Typ)); - Set_Etype (Id, Typ); - else - Set_Etype (Id, Key_Type); - end if; + pragma Assert (Present (Typ)); + Set_Etype (Id, Typ); Mutate_Ekind (Id, E_Variable); Set_Is_Not_Self_Hidden (Id); -- 2.40.0