[Ada] Wrong accessibility for conversion to named access
authorJustin Squirek <squirek@adacore.com>
Sun, 23 Aug 2020 17:38:16 +0000 (13:38 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 22 Oct 2020 12:11:24 +0000 (08:11 -0400)
gcc/ada/

* sem_util.adb (Accessibility_Level_Helper): Conversions to
named access types get the level associated with the named
access type.

gcc/ada/sem_util.adb

index 30c537643f7f84fb74998a750f88fb5df2d2c608..89c3f4865b412e0d3a374b494efe62b909fa5aa5 100644 (file)
@@ -751,6 +751,13 @@ package body Sem_Util is
             then
                return Accessibility_Level_Helper (Expression (E), Static);
 
+            --  We don't care about the master if we are looking at a named
+            --  access type.
+
+            elsif Is_Named_Access_Type (Etype (E)) then
+               return Make_Level_Literal
+                        (Type_Access_Level (Etype (E)));
+
             --  In section RM 3.10.2 (10/4) the accessibility rules for
             --  aggregates and value conversions are outlined. Are these
             --  followed in the case of initialization of an object ???