https://gcc.gnu.org/g:4413a6312672a2b2e37244828deec622d40cd03f

commit r16-1328-g4413a6312672a2b2e37244828deec622d40cd03f
Author: Eric Botcazou <ebotca...@adacore.com>
Date:   Fri Mar 7 09:36:45 2025 +0100

    ada: Restrict Overlays_Constant flag to selected entities
    
    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.

Diff:
---
 gcc/ada/einfo.ads                   | 10 +++++-----
 gcc/ada/gen_il-gen-gen_entities.adb |  2 +-
 gcc/ada/sem_util.adb                |  1 +
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index 545c15de24a2..1cbac6d9a7d7 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -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
diff --git a/gcc/ada/gen_il-gen-gen_entities.adb 
b/gcc/ada/gen_il-gen-gen_entities.adb
index bfa634f8a692..8af261ac0364 100644
--- a/gcc/ada/gen_il-gen-gen_entities.adb
+++ b/gcc/ada/gen_il-gen-gen_entities.adb
@@ -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),
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index c74c10f2b5f6..2b7296b67e8c 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -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

Reply via email to