diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2020-04-29 11:30:46 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-06-19 04:17:15 -0400 |
commit | 4b58985f6cc427a53fd72b3eabb2e9c252c2dc58 (patch) | |
tree | 1a9cc3636707ccf6a0248b919246d71198fd3bf6 /gcc/ada | |
parent | 484d58c5ba7518c19a1e1509e54635409bae480f (diff) | |
download | gcc-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.adb | 7 |
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 |