aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Baird <baird@adacore.com>2024-06-13 15:18:31 -0700
committerMarc Poulhiès <dkm@gcc.gnu.org>2024-07-02 15:20:35 +0200
commit5621e907ffbfc5953568d90c14c0f57d871e8f59 (patch)
treebac27899ae588f813b8093b3d06513f7643c2cd4
parent404f1f7ddda79ce7a1fe1c4010f88e49ed50596e (diff)
downloadgcc-5621e907ffbfc5953568d90c14c0f57d871e8f59.zip
gcc-5621e907ffbfc5953568d90c14c0f57d871e8f59.tar.gz
gcc-5621e907ffbfc5953568d90c14c0f57d871e8f59.tar.bz2
ada: Compiler accepts an illegal Unchecked_Access attribute reference
The compiler incorrectly accepts Some_Object'Unchecked_Access'Image. gcc/ada/ * sem_attr.adb (Analyze_Image_Attribute.Check_Image_Type): Check for E_Access_Attribute_Type prefix type.
-rw-r--r--gcc/ada/sem_attr.adb7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb
index d56c25a..0b0adac 100644
--- a/gcc/ada/sem_attr.adb
+++ b/gcc/ada/sem_attr.adb
@@ -1582,6 +1582,13 @@ package body Sem_Attr is
then
Error_Msg_Ada_2022_Feature ("nonscalar ''Image", Sloc (P));
Error_Attr;
+
+ elsif Present (Image_Type)
+ and then Ekind (Image_Type) = E_Access_Attribute_Type
+ then
+ -- reject Some_Object'[Unchecked_]Access'[Wide_[Wide_]]Image
+ Error_Msg_N ("illegal Image attribute prefix", N);
+ Error_Attr;
end if;
end Check_Image_Type;