From 4b58985f6cc427a53fd72b3eabb2e9c252c2dc58 Mon Sep 17 00:00:00 2001 From: Piotr Trojanek Date: Wed, 29 Apr 2020 11:30:46 +0200 Subject: [PATCH] [Ada] Reject junk expressions in attribute Update 2020-06-19 Piotr Trojanek gcc/ada/ * sem_attr.adb (Analyze_Attribute): Reject illegal positional component associations; fix syntax in comment about named component associations. --- gcc/ada/sem_attr.adb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index 3bd87fdf3db..5041a122414 100644 --- a/gcc/ada/sem_attr.adb +++ b/gcc/ada/sem_attr.adb @@ -6836,7 +6836,7 @@ package body Sem_Attr is -- Verify the consistency of types when the current component is -- part of a miltiple component update. - -- Comp_1, ..., Comp_N => + -- Comp_1 | ... | Comp_N => if Present (Etype (Comp)) then Base_Typ := Base_Type (Etype (Comp)); @@ -6877,6 +6877,11 @@ package body Sem_Attr is elsif Nkind (E1) /= N_Aggregate then Error_Attr ("attribute % requires component association list", N); + + elsif Present (Expressions (E1)) then + Error_Attr ("attribute % requires named component associations", + First (Expressions (E1))); + end if; -- Inspect the update aggregate, looking at all the associations and -- 2.30.2