From: Piotr Trojanek Date: Wed, 13 Oct 2021 11:40:28 +0000 (+0200) Subject: [Ada] Reject boxes in delta record aggregates X-Git-Tag: basepoints/gcc-13~3766 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6cf01c9277b81b81e8d09fe770b5fafe25fd880f;p=thirdparty%2Fgcc.git [Ada] Reject boxes in delta record aggregates gcc/ada/ * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reject boxes in record delta aggregates. --- diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb index e59a0e2ee689..42fb61067284 100644 --- a/gcc/ada/sem_aggr.adb +++ b/gcc/ada/sem_aggr.adb @@ -3545,7 +3545,19 @@ package body Sem_Aggr is end loop; pragma Assert (Present (Comp_Type)); - Analyze_And_Resolve (Expression (Assoc), Comp_Type); + + -- A record_component_association in record_delta_aggregate shall not + -- use the box compound delimiter <> rather than an expression; see + -- RM 4.3.1(17.3/5). + + pragma Assert (Present (Expression (Assoc)) xor Box_Present (Assoc)); + + if Box_Present (Assoc) then + Error_Msg_N + ("'<'> in record delta aggregate is not allowed", Assoc); + else + Analyze_And_Resolve (Expression (Assoc), Comp_Type); + end if; Next (Assoc); end loop; end Resolve_Delta_Record_Aggregate;