[gcc r16-1328] ada: Restrict Overlays_Constant flag to selected entities
Marc Poulhies
dkm@gcc.gnu.org
Mon Jun 9 06:40:19 GMT 2025
https://gcc.gnu.org/g:4413a6312672a2b2e37244828deec622d40cd03f
commit r16-1328-g4413a6312672a2b2e37244828deec622d40cd03f
Author: Eric Botcazou <ebotcazou@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
More information about the Gcc-cvs
mailing list