]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Restrict Overlays_Constant flag to selected entities
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 7 Mar 2025 08:36:45 +0000 (09:36 +0100)
committerMarc Poulhiès <dkm@gcc.gnu.org>
Mon, 9 Jun 2025 06:32:10 +0000 (08:32 +0200)
Namely E_Constant and E_Variable entities.

gcc/ada/ChangeLog:

* einfo.ads (Overlays_Constant): Define in constants and variables.
* gen_il-gen-gen_entities.adb (Entity_Kind): Move Overlays_Constant
semantic flag to...
(Constant_Or_Variable_Kind): ...here.
* sem_util.adb (Note_Possible_Modification): Add guard.

gcc/ada/einfo.ads
gcc/ada/gen_il-gen-gen_entities.adb
gcc/ada/sem_util.adb

index 545c15de24a2bca47e72d1669ff2185297c7b86b..1cbac6d9a7d79882f3d84f436587a78c5c738199 100644 (file)
@@ -3927,9 +3927,8 @@ package Einfo is
 --         Points to the component in the base type.
 
 --    Overlays_Constant
---       Defined in all entities. Set only for E_Constant or E_Variable for
---       which there is an address clause that causes the entity to overlay
---       a constant object.
+--       Defined in constants and variables. Set if there is an address clause
+--       that causes the entity to overlay a constant object.
 
 --    Overridden_Operation
 --       Defined in subprograms. For overriding operations, points to the
@@ -4961,7 +4960,6 @@ package Einfo is
    --    Materialize_Entity
    --    Needs_Debug_Info
    --    Never_Set_In_Source
-   --    Overlays_Constant
    --    Referenced
    --    Referenced_As_LHS
    --    Referenced_As_Out_Parameter
@@ -5288,7 +5286,7 @@ package Einfo is
    --    Interface_Name                        (constants only)
    --    Related_Type                          (constants only)
    --    Initialization_Statements
-   --    BIP_Initialization_Call
+   --    BIP_Initialization_Call               (constants only)
    --    Finalization_Master_Node
    --    Last_Aggregate_Assignment
    --    Activation_Record_Component
@@ -5318,6 +5316,7 @@ package Einfo is
    --    Is_Volatile_Full_Access
    --    Optimize_Alignment_Space              (constants only)
    --    Optimize_Alignment_Time               (constants only)
+   --    Overlays_Constant                     (constants only)
    --    SPARK_Pragma_Inherited                (constants only)
    --    Stores_Attribute_Old_Prefix           (constants only)
    --    Treat_As_Volatile
@@ -6205,6 +6204,7 @@ package Einfo is
    --    OK_To_Rename
    --    Optimize_Alignment_Space
    --    Optimize_Alignment_Time
+   --    Overlays_Constant
    --    SPARK_Pragma_Inherited
    --    Suppress_Initialization
    --    Treat_As_Volatile
index bfa634f8a692b3b4391264aebb538494c9bee396..8af261ac03648f31ab90e23605d994e827229e04 100644 (file)
@@ -215,7 +215,6 @@ begin -- Gen_IL.Gen.Gen_Entities
         Sm (May_Inherit_Delayed_Rep_Aspects, Flag),
         Sm (Needs_Debug_Info, Flag),
         Sm (Never_Set_In_Source, Flag),
-        Sm (Overlays_Constant, Flag),
         Sm (Prev_Entity, Node_Id),
         Sm (Referenced, Flag),
         Sm (Referenced_As_LHS, Flag),
@@ -353,6 +352,7 @@ begin -- Gen_IL.Gen.Gen_Entities
         Sm (Last_Aggregate_Assignment, Node_Id),
         Sm (Optimize_Alignment_Space, Flag),
         Sm (Optimize_Alignment_Time, Flag),
+        Sm (Overlays_Constant, Flag),
         Sm (Prival_Link, Node_Id),
         Sm (Related_Type, Node_Id),
         Sm (Return_Statement, Node_Id),
index c74c10f2b5f64040febf3bbed33d238fbf4d99d7..2b7296b67e8c05f7d0384b50a18a74b006aab1d7 100644 (file)
@@ -25586,6 +25586,7 @@ package body Sem_Util is
 
             if Sure
               and then Modification_Comes_From_Source
+              and then Ekind (Ent) in E_Constant | E_Variable
               and then Overlays_Constant (Ent)
               and then Address_Clause_Overlay_Warnings
             then