aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2020-04-29 11:30:46 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2020-06-19 04:17:15 -0400
commit4b58985f6cc427a53fd72b3eabb2e9c252c2dc58 (patch)
tree1a9cc3636707ccf6a0248b919246d71198fd3bf6 /gcc/ada
parent484d58c5ba7518c19a1e1509e54635409bae480f (diff)
downloadgcc-4b58985f6cc427a53fd72b3eabb2e9c252c2dc58.zip
gcc-4b58985f6cc427a53fd72b3eabb2e9c252c2dc58.tar.gz
gcc-4b58985f6cc427a53fd72b3eabb2e9c252c2dc58.tar.bz2
[Ada] Reject junk expressions in attribute Update
2020-06-19 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * sem_attr.adb (Analyze_Attribute): Reject illegal positional component associations; fix syntax in comment about named component associations.
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/sem_attr.adb7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb
index 3bd87fd..5041a12 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 => <value>
+ -- Comp_1 | ... | Comp_N => <value>
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