diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2021-10-13 13:40:28 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2021-10-20 10:17:05 +0000 |
commit | 6cf01c9277b81b81e8d09fe770b5fafe25fd880f (patch) | |
tree | 8f733e8190a671853833b4f83f9a7e90f7d5d2da /gcc | |
parent | 50cdd660b2ac54abb2659c7a88200d4c2fd1f195 (diff) | |
download | gcc-6cf01c9277b81b81e8d09fe770b5fafe25fd880f.zip gcc-6cf01c9277b81b81e8d09fe770b5fafe25fd880f.tar.gz gcc-6cf01c9277b81b81e8d09fe770b5fafe25fd880f.tar.bz2 |
[Ada] Reject boxes in delta record aggregates
gcc/ada/
* sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reject boxes in
record delta aggregates.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_aggr.adb | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb index e59a0e2..42fb610 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; |