aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2013-01-04 11:08:58 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2013-01-04 11:08:58 +0100
commit0e564ab485f5db3094a2716fa79e57dcb1d181b8 (patch)
treeb62ad05a8d3f032da4975d203bb50785b5b7ca02 /gcc
parent7fcd29e08c49eff92770f7e50895dcfe3d306479 (diff)
downloadgcc-0e564ab485f5db3094a2716fa79e57dcb1d181b8.zip
gcc-0e564ab485f5db3094a2716fa79e57dcb1d181b8.tar.gz
gcc-0e564ab485f5db3094a2716fa79e57dcb1d181b8.tar.bz2
[multiple changes]
2013-01-04 Robert Dewar <dewar@adacore.com> * warnsw.adb: Minor fixes to -gnatw.d handling. 2013-01-04 Robert Dewar <dewar@adacore.com> * einfo.adb, atree.adb: Enlarge entities to make 63 more flags, 6 more fields. 2013-01-04 Joel Brobecker <brobecker@adacore.com brobecker> * gnat_ugn.texi: Fix typo. 2013-01-04 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Document alignment choice for subtypes. 2013-01-04 Robert Dewar <dewar@adacore.com> * validsw.ads: Minor fix to comment. 2013-01-04 Doug Rupp <rupp@adacore.com> * Makefile.rtl (GNATRTL_NONTASKING_OBJS, GNATRTL_ALTIVEC_OBJS): Factor g-al* objects. * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Add g-al* sources. (GNATRTL_ALTIVEC_OBJS): Override to null for VMS. Rename leon vxworks toolchain as leon-wrs-vxworks. * gcc-interface/Make-lang.in: Update dependencies 2013-01-04 Pascal Obry <obry@adacore.com> * prj.ads (For_Each_Source): Add Locally_Removed parameter. (Source_Iterator): Add Locally_Removed field. * prj.adb (For_Each_Source): Ignore Locally_Removed files if needed. (Next): Likewise. 2013-01-04 Robert Dewar <dewar@adacore.com> * exp_attr.adb: Minor reformatting. 2013-01-04 Robert Dewar <dewar@adacore.com> * checks.adb (Insert_Valid_Check): Fix handling of renamed packed array element. * exp_ch4.adb (Expand_Concatenate): Fix some missing parent fields in generated code. * exp_util.adb (Side_Effect_Free): Improve detection of cases needing renaming. 2013-01-04 Robert Dewar <dewar@adacore.com> * sinfo.ads: Clean up order of N_xxx subtypes 2013-01-04 Vincent Celier <celier@adacore.com> * prj-conf.adb (Check_Target): Allow --autoconf= with no target. From-SVN: r194896
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog58
-rw-r--r--gcc/ada/Makefile.rtl18
-rw-r--r--gcc/ada/atree.adb990
-rw-r--r--gcc/ada/atree.ads505
-rw-r--r--gcc/ada/checks.adb41
-rw-r--r--gcc/ada/einfo.adb84
-rw-r--r--gcc/ada/exp_attr.adb1
-rw-r--r--gcc/ada/exp_ch4.adb3
-rw-r--r--gcc/ada/exp_util.adb179
-rw-r--r--gcc/ada/gcc-interface/Make-lang.in11
-rw-r--r--gcc/ada/gcc-interface/Makefile.in9
-rw-r--r--gcc/ada/gnat_rm.texi24
-rw-r--r--gcc/ada/gnat_ugn.texi2
-rw-r--r--gcc/ada/prj.adb20
-rw-r--r--gcc/ada/prj.ads8
-rw-r--r--gcc/ada/validsw.ads2
-rw-r--r--gcc/ada/warnsw.adb13
17 files changed, 1785 insertions, 183 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 1a8e0da..14ee24d 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,63 @@
2013-01-04 Robert Dewar <dewar@adacore.com>
+ * warnsw.adb: Minor fixes to -gnatw.d handling.
+
+2013-01-04 Robert Dewar <dewar@adacore.com>
+
+ * einfo.adb, atree.adb: Enlarge entities to make 63 more flags, 6 more
+ fields.
+
+2013-01-04 Joel Brobecker <brobecker@adacore.com brobecker>
+
+ * gnat_ugn.texi: Fix typo.
+
+2013-01-04 Robert Dewar <dewar@adacore.com>
+
+ * gnat_rm.texi: Document alignment choice for subtypes.
+
+2013-01-04 Robert Dewar <dewar@adacore.com>
+
+ * validsw.ads: Minor fix to comment.
+
+2013-01-04 Doug Rupp <rupp@adacore.com>
+
+ * Makefile.rtl (GNATRTL_NONTASKING_OBJS,
+ GNATRTL_ALTIVEC_OBJS): Factor g-al* objects.
+ * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Add g-al* sources.
+ (GNATRTL_ALTIVEC_OBJS): Override to null for VMS.
+ Rename leon vxworks toolchain as leon-wrs-vxworks.
+ * gcc-interface/Make-lang.in: Update dependencies
+
+2013-01-04 Pascal Obry <obry@adacore.com>
+
+ * prj.ads (For_Each_Source): Add Locally_Removed parameter.
+ (Source_Iterator): Add Locally_Removed field.
+ * prj.adb (For_Each_Source): Ignore Locally_Removed files if needed.
+ (Next): Likewise.
+
+2013-01-04 Robert Dewar <dewar@adacore.com>
+
+ * exp_attr.adb: Minor reformatting.
+
+2013-01-04 Robert Dewar <dewar@adacore.com>
+
+ * checks.adb (Insert_Valid_Check): Fix handling of renamed
+ packed array element.
+ * exp_ch4.adb (Expand_Concatenate): Fix some missing parent
+ fields in generated code.
+ * exp_util.adb (Side_Effect_Free): Improve detection of cases
+ needing renaming.
+
+2013-01-04 Robert Dewar <dewar@adacore.com>
+
+ * sinfo.ads: Clean up order of N_xxx subtypes
+
+2013-01-04 Vincent Celier <celier@adacore.com>
+
+ * prj-conf.adb (Check_Target): Allow --autoconf= with no target.
+
+2013-01-04 Robert Dewar <dewar@adacore.com>
+
* types.ads, prj-conf.adb, par-tchk.adb: Minor reformatting.
2013-01-04 Robert Dewar <dewar@adacore.com>
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index 8ef3469..5a8f15a 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -79,6 +79,16 @@ GNATRTL_TASKING_OBJS= \
thread$(objext) \
$(EXTRA_GNATRTL_TASKING_OBJS)
+# Objects the require IEEE Float
+GNATRTL_ALTIVEC_OBJS= \
+ g-allein$(objext) \
+ g-alleve$(objext) \
+ g-altcon$(objext) \
+ g-altive$(objext) \
+ g-alveop$(objext) \
+ g-alvety$(objext) \
+ g-alvevi$(objext)
+
# Objects needed for non-tasking.
GNATRTL_NONTASKING_OBJS= \
a-assert$(objext) \
@@ -367,13 +377,6 @@ GNATRTL_NONTASKING_OBJS= \
ada$(objext) \
calendar$(objext) \
directio$(objext) \
- g-allein$(objext) \
- g-alleve$(objext) \
- g-altcon$(objext) \
- g-altive$(objext) \
- g-alveop$(objext) \
- g-alvety$(objext) \
- g-alvevi$(objext) \
g-arrspl$(objext) \
g-awk$(objext) \
g-bubsor$(objext) \
@@ -703,5 +706,6 @@ GNATRTL_NONTASKING_OBJS= \
text_io$(objext) \
unchconv$(objext) \
unchdeal$(objext) \
+ $(GNATRTL_ALTIVEC_OBJS) \
$(GNATRTL_SOCKETS_OBJS) \
$(EXTRA_GNATRTL_NONTASKING_OBJS)
diff --git a/gcc/ada/atree.adb b/gcc/ada/atree.adb
index a5c80dc..01fc081 100644
--- a/gcc/ada/atree.adb
+++ b/gcc/ada/atree.adb
@@ -205,6 +205,31 @@ package body Atree is
function To_Flag_Byte3_Ptr is new
Unchecked_Conversion (Node_Kind_Ptr, Flag_Byte3_Ptr);
+ -- The following declarations are used to store flags 310-317 in the
+ -- Nkind field of the sixth component of an extended (entity) node.
+
+ type Flag_Byte4 is record
+ Flag310 : Boolean;
+ Flag311 : Boolean;
+ Flag312 : Boolean;
+ Flag313 : Boolean;
+ Flag314 : Boolean;
+ Flag315 : Boolean;
+ Flag316 : Boolean;
+ Flag317 : Boolean;
+ end record;
+
+ pragma Pack (Flag_Byte4);
+ for Flag_Byte4'Size use 8;
+
+ type Flag_Byte4_Ptr is access all Flag_Byte4;
+
+ function To_Flag_Byte4 is new
+ Unchecked_Conversion (Node_Kind, Flag_Byte4);
+
+ function To_Flag_Byte4_Ptr is new
+ Unchecked_Conversion (Node_Kind_Ptr, Flag_Byte4_Ptr);
+
-- The following declarations are used to store flags 73-96 and the
-- Convention field in the Field12 field of the third component of an
-- extended (Entity) node.
@@ -412,6 +437,59 @@ package body Atree is
function To_Flag_Word4_Ptr is new
Unchecked_Conversion (Union_Id_Ptr, Flag_Word4_Ptr);
+ -- The following declarations are used to store flags 255-286 in the
+ -- Field12 field of the sixth component of an extended (entity) node.
+
+ type Flag_Word5 is record
+ Flag255 : Boolean;
+ Flag256 : Boolean;
+ Flag257 : Boolean;
+ Flag258 : Boolean;
+ Flag259 : Boolean;
+ Flag260 : Boolean;
+ Flag261 : Boolean;
+ Flag262 : Boolean;
+
+ Flag263 : Boolean;
+ Flag264 : Boolean;
+ Flag265 : Boolean;
+ Flag266 : Boolean;
+ Flag267 : Boolean;
+ Flag268 : Boolean;
+ Flag269 : Boolean;
+ Flag270 : Boolean;
+
+ Flag271 : Boolean;
+ Flag272 : Boolean;
+ Flag273 : Boolean;
+ Flag274 : Boolean;
+ Flag275 : Boolean;
+ Flag276 : Boolean;
+ Flag277 : Boolean;
+ Flag278 : Boolean;
+
+ Flag279 : Boolean;
+ Flag280 : Boolean;
+ Flag281 : Boolean;
+ Flag282 : Boolean;
+ Flag283 : Boolean;
+ Flag284 : Boolean;
+ Flag285 : Boolean;
+ Flag286 : Boolean;
+ end record;
+
+ pragma Pack (Flag_Word5);
+ for Flag_Word5'Size use 32;
+ for Flag_Word5'Alignment use 4;
+
+ type Flag_Word5_Ptr is access all Flag_Word5;
+
+ function To_Flag_Word5 is new
+ Unchecked_Conversion (Union_Id, Flag_Word5);
+
+ function To_Flag_Word5_Ptr is new
+ Unchecked_Conversion (Union_Id_Ptr, Flag_Word5_Ptr);
+
--------------------------------------------------
-- Implementation of Tree Substitution Routines --
--------------------------------------------------
@@ -470,8 +548,8 @@ package body Atree is
function Allocate_Initialize_Node
(Src : Node_Id;
With_Extension : Boolean) return Node_Id;
- -- Allocate a new node or node extension. If Src is not empty,
- -- the information for the newly-allocated node is copied from it.
+ -- Allocate a new node or node extension. If Src is not empty, the
+ -- information for the newly-allocated node is copied from it.
------------------------------
-- Allocate_Initialize_Node --
@@ -2232,6 +2310,42 @@ package body Atree is
return Nodes.Table (N + 4).Field11;
end Field29;
+ function Field30 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Field6;
+ end Field30;
+
+ function Field31 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Field7;
+ end Field31;
+
+ function Field32 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Field8;
+ end Field32;
+
+ function Field33 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Field9;
+ end Field33;
+
+ function Field34 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Field10;
+ end Field34;
+
+ function Field35 (N : Node_Id) return Union_Id is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Field11;
+ end Field35;
+
function Node1 (N : Node_Id) return Node_Id is
begin
pragma Assert (N <= Nodes.Last);
@@ -4337,6 +4451,384 @@ package body Atree is
return To_Flag_Byte3 (Nodes.Table (N + 4).Nkind).Flag254;
end Flag254;
+ function Flag255 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag255;
+ end Flag255;
+
+ function Flag256 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag256;
+ end Flag256;
+
+ function Flag257 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag257;
+ end Flag257;
+
+ function Flag258 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag258;
+ end Flag258;
+
+ function Flag259 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag259;
+ end Flag259;
+
+ function Flag260 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag260;
+ end Flag260;
+
+ function Flag261 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag261;
+ end Flag261;
+
+ function Flag262 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag262;
+ end Flag262;
+
+ function Flag263 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag263;
+ end Flag263;
+
+ function Flag264 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag264;
+ end Flag264;
+
+ function Flag265 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag265;
+ end Flag265;
+
+ function Flag266 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag266;
+ end Flag266;
+
+ function Flag267 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag267;
+ end Flag267;
+
+ function Flag268 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag268;
+ end Flag268;
+
+ function Flag269 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag269;
+ end Flag269;
+
+ function Flag270 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag270;
+ end Flag270;
+
+ function Flag271 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag271;
+ end Flag271;
+
+ function Flag272 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag272;
+ end Flag272;
+
+ function Flag273 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag273;
+ end Flag273;
+
+ function Flag274 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag274;
+ end Flag274;
+
+ function Flag275 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag275;
+ end Flag275;
+
+ function Flag276 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag276;
+ end Flag276;
+
+ function Flag277 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag277;
+ end Flag277;
+
+ function Flag278 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag278;
+ end Flag278;
+
+ function Flag279 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag279;
+ end Flag279;
+
+ function Flag280 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag280;
+ end Flag280;
+
+ function Flag281 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag281;
+ end Flag281;
+
+ function Flag282 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag282;
+ end Flag282;
+
+ function Flag283 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag283;
+ end Flag283;
+
+ function Flag284 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag284;
+ end Flag284;
+
+ function Flag285 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag285;
+ end Flag285;
+
+ function Flag286 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Word5 (Nodes.Table (N + 5).Field12).Flag286;
+ end Flag286;
+
+ function Flag287 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).In_List;
+ end Flag287;
+
+ function Flag288 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Has_Aspects;
+ end Flag288;
+
+ function Flag289 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Rewrite_Ins;
+ end Flag289;
+
+ function Flag290 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Analyzed;
+ end Flag290;
+
+ function Flag291 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Comes_From_Source;
+ end Flag291;
+
+ function Flag292 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Error_Posted;
+ end Flag292;
+
+ function Flag293 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag4;
+ end Flag293;
+
+ function Flag294 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag5;
+ end Flag294;
+
+ function Flag295 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag6;
+ end Flag295;
+
+ function Flag296 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag7;
+ end Flag296;
+
+ function Flag297 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag8;
+ end Flag297;
+
+ function Flag298 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag9;
+ end Flag298;
+
+ function Flag299 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag10;
+ end Flag299;
+
+ function Flag300 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag11;
+ end Flag300;
+
+ function Flag301 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag12;
+ end Flag301;
+
+ function Flag302 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag13;
+ end Flag302;
+
+ function Flag303 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag14;
+ end Flag303;
+
+ function Flag304 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag15;
+ end Flag304;
+
+ function Flag305 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag16;
+ end Flag305;
+
+ function Flag306 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag17;
+ end Flag306;
+
+ function Flag307 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Flag18;
+ end Flag307;
+
+ function Flag308 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Pflag1;
+ end Flag308;
+
+ function Flag309 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return Nodes.Table (N + 5).Pflag2;
+ end Flag309;
+
+ function Flag310 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Byte4 (Nodes.Table (N + 5).Nkind).Flag310;
+ end Flag310;
+
+ function Flag311 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Byte4 (Nodes.Table (N + 5).Nkind).Flag311;
+ end Flag311;
+
+ function Flag312 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Byte4 (Nodes.Table (N + 5).Nkind).Flag312;
+ end Flag312;
+
+ function Flag313 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Byte4 (Nodes.Table (N + 5).Nkind).Flag313;
+ end Flag313;
+
+ function Flag314 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Byte4 (Nodes.Table (N + 5).Nkind).Flag314;
+ end Flag314;
+
+ function Flag315 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Byte4 (Nodes.Table (N + 5).Nkind).Flag315;
+ end Flag315;
+
+ function Flag316 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Byte4 (Nodes.Table (N + 5).Nkind).Flag316;
+ end Flag316;
+
+ function Flag317 (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ return To_Flag_Byte4 (Nodes.Table (N + 5).Nkind).Flag317;
+ end Flag317;
+
procedure Set_Nkind (N : Node_Id; Val : Node_Kind) is
begin
pragma Assert (N <= Nodes.Last);
@@ -4517,6 +5009,42 @@ package body Atree is
Nodes.Table (N + 4).Field11 := Val;
end Set_Field29;
+ procedure Set_Field30 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Field6 := Val;
+ end Set_Field30;
+
+ procedure Set_Field31 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Field7 := Val;
+ end Set_Field31;
+
+ procedure Set_Field32 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Field8 := Val;
+ end Set_Field32;
+
+ procedure Set_Field33 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Field9 := Val;
+ end Set_Field33;
+
+ procedure Set_Field34 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Field10 := Val;
+ end Set_Field34;
+
+ procedure Set_Field35 (N : Node_Id; Val : Union_Id) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Field11 := Val;
+ end Set_Field35;
+
procedure Set_Node1 (N : Node_Id; Val : Node_Id) is
begin
pragma Assert (N <= Nodes.Last);
@@ -6750,6 +7278,464 @@ package body Atree is
(Nodes.Table (N + 4).Nkind'Unrestricted_Access)).Flag254 := Val;
end Set_Flag254;
+ procedure Set_Flag255 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag255 := Val;
+ end Set_Flag255;
+
+ procedure Set_Flag256 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag256 := Val;
+ end Set_Flag256;
+
+ procedure Set_Flag257 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag257 := Val;
+ end Set_Flag257;
+
+ procedure Set_Flag258 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag258 := Val;
+ end Set_Flag258;
+
+ procedure Set_Flag259 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag259 := Val;
+ end Set_Flag259;
+
+ procedure Set_Flag260 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag260 := Val;
+ end Set_Flag260;
+
+ procedure Set_Flag261 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag261 := Val;
+ end Set_Flag261;
+
+ procedure Set_Flag262 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag262 := Val;
+ end Set_Flag262;
+
+ procedure Set_Flag263 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag263 := Val;
+ end Set_Flag263;
+
+ procedure Set_Flag264 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag264 := Val;
+ end Set_Flag264;
+
+ procedure Set_Flag265 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag265 := Val;
+ end Set_Flag265;
+
+ procedure Set_Flag266 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag266 := Val;
+ end Set_Flag266;
+
+ procedure Set_Flag267 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag267 := Val;
+ end Set_Flag267;
+
+ procedure Set_Flag268 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag268 := Val;
+ end Set_Flag268;
+
+ procedure Set_Flag269 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag269 := Val;
+ end Set_Flag269;
+
+ procedure Set_Flag270 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag270 := Val;
+ end Set_Flag270;
+
+ procedure Set_Flag271 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag271 := Val;
+ end Set_Flag271;
+
+ procedure Set_Flag272 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag272 := Val;
+ end Set_Flag272;
+
+ procedure Set_Flag273 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag273 := Val;
+ end Set_Flag273;
+
+ procedure Set_Flag274 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag274 := Val;
+ end Set_Flag274;
+
+ procedure Set_Flag275 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag275 := Val;
+ end Set_Flag275;
+
+ procedure Set_Flag276 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag276 := Val;
+ end Set_Flag276;
+
+ procedure Set_Flag277 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag277 := Val;
+ end Set_Flag277;
+
+ procedure Set_Flag278 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag278 := Val;
+ end Set_Flag278;
+
+ procedure Set_Flag279 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag279 := Val;
+ end Set_Flag279;
+
+ procedure Set_Flag280 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag280 := Val;
+ end Set_Flag280;
+
+ procedure Set_Flag281 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag281 := Val;
+ end Set_Flag281;
+
+ procedure Set_Flag282 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag282 := Val;
+ end Set_Flag282;
+
+ procedure Set_Flag283 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag283 := Val;
+ end Set_Flag283;
+
+ procedure Set_Flag284 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag284 := Val;
+ end Set_Flag284;
+
+ procedure Set_Flag285 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag285 := Val;
+ end Set_Flag285;
+
+ procedure Set_Flag286 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Word5_Ptr
+ (Union_Id_Ptr'
+ (Nodes.Table (N + 5).Field12'Unrestricted_Access)).Flag286 := Val;
+ end Set_Flag286;
+
+ procedure Set_Flag287 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).In_List := Val;
+ end Set_Flag287;
+
+ procedure Set_Flag288 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Has_Aspects := Val;
+ end Set_Flag288;
+
+ procedure Set_Flag289 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Rewrite_Ins := Val;
+ end Set_Flag289;
+
+ procedure Set_Flag290 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Analyzed := Val;
+ end Set_Flag290;
+
+ procedure Set_Flag291 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Comes_From_Source := Val;
+ end Set_Flag291;
+
+ procedure Set_Flag292 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Error_Posted := Val;
+ end Set_Flag292;
+
+ procedure Set_Flag293 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag4 := Val;
+ end Set_Flag293;
+
+ procedure Set_Flag294 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag5 := Val;
+ end Set_Flag294;
+
+ procedure Set_Flag295 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag6 := Val;
+ end Set_Flag295;
+
+ procedure Set_Flag296 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag7 := Val;
+ end Set_Flag296;
+
+ procedure Set_Flag297 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag8 := Val;
+ end Set_Flag297;
+
+ procedure Set_Flag298 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag9 := Val;
+ end Set_Flag298;
+
+ procedure Set_Flag299 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag10 := Val;
+ end Set_Flag299;
+
+ procedure Set_Flag300 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag11 := Val;
+ end Set_Flag300;
+
+ procedure Set_Flag301 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag12 := Val;
+ end Set_Flag301;
+
+ procedure Set_Flag302 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag13 := Val;
+ end Set_Flag302;
+
+ procedure Set_Flag303 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag14 := Val;
+ end Set_Flag303;
+
+ procedure Set_Flag304 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag15 := Val;
+ end Set_Flag304;
+
+ procedure Set_Flag305 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag16 := Val;
+ end Set_Flag305;
+
+ procedure Set_Flag306 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag17 := Val;
+ end Set_Flag306;
+
+ procedure Set_Flag307 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Flag18 := Val;
+ end Set_Flag307;
+
+ procedure Set_Flag308 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Pflag1 := Val;
+ end Set_Flag308;
+
+ procedure Set_Flag309 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ Nodes.Table (N + 5).Pflag2 := Val;
+ end Set_Flag309;
+
+ procedure Set_Flag310 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Byte4_Ptr
+ (Node_Kind_Ptr'
+ (Nodes.Table (N + 5).Nkind'Unrestricted_Access)).Flag310 := Val;
+ end Set_Flag310;
+
+ procedure Set_Flag311 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Byte4_Ptr
+ (Node_Kind_Ptr'
+ (Nodes.Table (N + 5).Nkind'Unrestricted_Access)).Flag311 := Val;
+ end Set_Flag311;
+
+ procedure Set_Flag312 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Byte4_Ptr
+ (Node_Kind_Ptr'
+ (Nodes.Table (N + 5).Nkind'Unrestricted_Access)).Flag312 := Val;
+ end Set_Flag312;
+
+ procedure Set_Flag313 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Byte4_Ptr
+ (Node_Kind_Ptr'
+ (Nodes.Table (N + 5).Nkind'Unrestricted_Access)).Flag313 := Val;
+ end Set_Flag313;
+
+ procedure Set_Flag314 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Byte4_Ptr
+ (Node_Kind_Ptr'
+ (Nodes.Table (N + 5).Nkind'Unrestricted_Access)).Flag314 := Val;
+ end Set_Flag314;
+
+ procedure Set_Flag315 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Byte4_Ptr
+ (Node_Kind_Ptr'
+ (Nodes.Table (N + 5).Nkind'Unrestricted_Access)).Flag315 := Val;
+ end Set_Flag315;
+
+ procedure Set_Flag316 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Byte4_Ptr
+ (Node_Kind_Ptr'
+ (Nodes.Table (N + 5).Nkind'Unrestricted_Access)).Flag316 := Val;
+ end Set_Flag316;
+
+ procedure Set_Flag317 (N : Node_Id; Val : Boolean) is
+ begin
+ pragma Assert (Nkind (N) in N_Entity);
+ To_Flag_Byte4_Ptr
+ (Node_Kind_Ptr'
+ (Nodes.Table (N + 5).Nkind'Unrestricted_Access)).Flag317 := Val;
+ end Set_Flag317;
+
procedure Set_Node1_With_Parent (N : Node_Id; Val : Node_Id) is
begin
pragma Assert (N <= Nodes.Last);
diff --git a/gcc/ada/atree.ads b/gcc/ada/atree.ads
index 2b295ba..2b616bd 100644
--- a/gcc/ada/atree.ads
+++ b/gcc/ada/atree.ads
@@ -196,9 +196,9 @@ package Atree is
-- entity, it is of type Entity_Kind which is defined
-- in package Einfo.
- -- Flag19 235 additional flags
+ -- Flag19 299 additional flags
-- ...
- -- Flag254
+ -- Flag317
-- Convention Entity convention (Convention_Id value)
@@ -208,9 +208,9 @@ package Atree is
-- Elist6 Synonym for Field6 typed as Elist_Id (Empty = No_Elist)
-- Uint6 Synonym for Field6 typed as Uint (Empty = Uint_0)
- -- Similar definitions for Field7 to Field28 (and Node7-Node28,
- -- Elist7-Elist28, Uint7-Uint28, Ureal7-Ureal28). Note that not all these
- -- functions are defined, only the ones that are actually used.
+ -- Similar definitions for Field7 to Field35 (and also Node7-Node35,
+ -- Elist7-Elist35, Uint7-Uint35, Ureal7-Ureal35). Note that not all
+ -- these functions are defined, only the ones that are actually used.
function Last_Node_Id return Node_Id;
pragma Inline (Last_Node_Id);
@@ -334,22 +334,22 @@ package Atree is
-- Field1-5 fields are set to Empty
- -- Field6-29 fields in extended nodes are set to Empty
+ -- Field6-35 fields in extended nodes are set to Empty
-- Parent is set to Empty
-- All Boolean flag fields are set to False
- -- Note: the value Empty is used in Field1-Field17 to indicate a null node.
- -- The usage varies. The common uses are to indicate absence of an
- -- optional clause or a completely unused Field1-17 field.
+ -- Note: the value Empty is used in Field1-Field35 to indicate a null node.
+ -- The usage varies. The common uses are to indicate absence of an optional
+ -- clause or a completely unused Field1-35 field.
-------------------------------------
-- Use of Synonyms for Node Fields --
-------------------------------------
-- A subpackage Atree.Unchecked_Access provides routines for reading and
- -- writing the fields defined above (Field1-27, Node1-27, Flag4-254 etc).
+ -- writing the fields defined above (Field1-35, Node1-35, Flag4-317 etc).
-- These unchecked access routines can be used for untyped traversals.
-- In addition they are used in the implementations of the Sinfo and
-- Einfo packages. These packages both provide logical synonyms for
@@ -481,10 +481,9 @@ package Atree is
-- valid. This routine is used in conjunction with the tree rewrite
-- routines (see descriptions of Replace/Rewrite).
--
- -- Note that the resulting node has the same parent as the source
- -- node, and is thus still attached to the tree. It is valid for
- -- Source to be Empty, in which case Relocate_Node simply returns
- -- Empty as the result.
+ -- Note that the resulting node has the same parent as the source node, and
+ -- is thus still attached to the tree. It is valid for Source to be Empty,
+ -- in which case Relocate_Node simply returns Empty as the result.
function Copy_Separate_Tree (Source : Node_Id) return Node_Id;
-- Given a node that is the root of a subtree, Copy_Separate_Tree copies
@@ -1063,6 +1062,24 @@ package Atree is
function Field29 (N : Node_Id) return Union_Id;
pragma Inline (Field29);
+ function Field30 (N : Node_Id) return Union_Id;
+ pragma Inline (Field30);
+
+ function Field31 (N : Node_Id) return Union_Id;
+ pragma Inline (Field31);
+
+ function Field32 (N : Node_Id) return Union_Id;
+ pragma Inline (Field32);
+
+ function Field33 (N : Node_Id) return Union_Id;
+ pragma Inline (Field33);
+
+ function Field34 (N : Node_Id) return Union_Id;
+ pragma Inline (Field34);
+
+ function Field35 (N : Node_Id) return Union_Id;
+ pragma Inline (Field35);
+
function Node1 (N : Node_Id) return Node_Id;
pragma Inline (Node1);
@@ -2043,6 +2060,195 @@ package Atree is
function Flag254 (N : Node_Id) return Boolean;
pragma Inline (Flag254);
+ function Flag255 (N : Node_Id) return Boolean;
+ pragma Inline (Flag255);
+
+ function Flag256 (N : Node_Id) return Boolean;
+ pragma Inline (Flag256);
+
+ function Flag257 (N : Node_Id) return Boolean;
+ pragma Inline (Flag257);
+
+ function Flag258 (N : Node_Id) return Boolean;
+ pragma Inline (Flag258);
+
+ function Flag259 (N : Node_Id) return Boolean;
+ pragma Inline (Flag259);
+
+ function Flag260 (N : Node_Id) return Boolean;
+ pragma Inline (Flag260);
+
+ function Flag261 (N : Node_Id) return Boolean;
+ pragma Inline (Flag261);
+
+ function Flag262 (N : Node_Id) return Boolean;
+ pragma Inline (Flag262);
+
+ function Flag263 (N : Node_Id) return Boolean;
+ pragma Inline (Flag263);
+
+ function Flag264 (N : Node_Id) return Boolean;
+ pragma Inline (Flag264);
+
+ function Flag265 (N : Node_Id) return Boolean;
+ pragma Inline (Flag265);
+
+ function Flag266 (N : Node_Id) return Boolean;
+ pragma Inline (Flag266);
+
+ function Flag267 (N : Node_Id) return Boolean;
+ pragma Inline (Flag267);
+
+ function Flag268 (N : Node_Id) return Boolean;
+ pragma Inline (Flag268);
+
+ function Flag269 (N : Node_Id) return Boolean;
+ pragma Inline (Flag269);
+
+ function Flag270 (N : Node_Id) return Boolean;
+ pragma Inline (Flag270);
+
+ function Flag271 (N : Node_Id) return Boolean;
+ pragma Inline (Flag271);
+
+ function Flag272 (N : Node_Id) return Boolean;
+ pragma Inline (Flag272);
+
+ function Flag273 (N : Node_Id) return Boolean;
+ pragma Inline (Flag273);
+
+ function Flag274 (N : Node_Id) return Boolean;
+ pragma Inline (Flag274);
+
+ function Flag275 (N : Node_Id) return Boolean;
+ pragma Inline (Flag275);
+
+ function Flag276 (N : Node_Id) return Boolean;
+ pragma Inline (Flag276);
+
+ function Flag277 (N : Node_Id) return Boolean;
+ pragma Inline (Flag277);
+
+ function Flag278 (N : Node_Id) return Boolean;
+ pragma Inline (Flag278);
+
+ function Flag279 (N : Node_Id) return Boolean;
+ pragma Inline (Flag279);
+
+ function Flag280 (N : Node_Id) return Boolean;
+ pragma Inline (Flag280);
+
+ function Flag281 (N : Node_Id) return Boolean;
+ pragma Inline (Flag281);
+
+ function Flag282 (N : Node_Id) return Boolean;
+ pragma Inline (Flag282);
+
+ function Flag283 (N : Node_Id) return Boolean;
+ pragma Inline (Flag283);
+
+ function Flag284 (N : Node_Id) return Boolean;
+ pragma Inline (Flag284);
+
+ function Flag285 (N : Node_Id) return Boolean;
+ pragma Inline (Flag285);
+
+ function Flag286 (N : Node_Id) return Boolean;
+ pragma Inline (Flag286);
+
+ function Flag287 (N : Node_Id) return Boolean;
+ pragma Inline (Flag287);
+
+ function Flag288 (N : Node_Id) return Boolean;
+ pragma Inline (Flag288);
+
+ function Flag289 (N : Node_Id) return Boolean;
+ pragma Inline (Flag289);
+
+ function Flag290 (N : Node_Id) return Boolean;
+ pragma Inline (Flag290);
+
+ function Flag291 (N : Node_Id) return Boolean;
+ pragma Inline (Flag291);
+
+ function Flag292 (N : Node_Id) return Boolean;
+ pragma Inline (Flag292);
+
+ function Flag293 (N : Node_Id) return Boolean;
+ pragma Inline (Flag293);
+
+ function Flag294 (N : Node_Id) return Boolean;
+ pragma Inline (Flag294);
+
+ function Flag295 (N : Node_Id) return Boolean;
+ pragma Inline (Flag295);
+
+ function Flag296 (N : Node_Id) return Boolean;
+ pragma Inline (Flag296);
+
+ function Flag297 (N : Node_Id) return Boolean;
+ pragma Inline (Flag297);
+
+ function Flag298 (N : Node_Id) return Boolean;
+ pragma Inline (Flag298);
+
+ function Flag299 (N : Node_Id) return Boolean;
+ pragma Inline (Flag299);
+
+ function Flag300 (N : Node_Id) return Boolean;
+ pragma Inline (Flag300);
+
+ function Flag301 (N : Node_Id) return Boolean;
+ pragma Inline (Flag301);
+
+ function Flag302 (N : Node_Id) return Boolean;
+ pragma Inline (Flag302);
+
+ function Flag303 (N : Node_Id) return Boolean;
+ pragma Inline (Flag303);
+
+ function Flag304 (N : Node_Id) return Boolean;
+ pragma Inline (Flag304);
+
+ function Flag305 (N : Node_Id) return Boolean;
+ pragma Inline (Flag305);
+
+ function Flag306 (N : Node_Id) return Boolean;
+ pragma Inline (Flag306);
+
+ function Flag307 (N : Node_Id) return Boolean;
+ pragma Inline (Flag307);
+
+ function Flag308 (N : Node_Id) return Boolean;
+ pragma Inline (Flag308);
+
+ function Flag309 (N : Node_Id) return Boolean;
+ pragma Inline (Flag309);
+
+ function Flag310 (N : Node_Id) return Boolean;
+ pragma Inline (Flag310);
+
+ function Flag311 (N : Node_Id) return Boolean;
+ pragma Inline (Flag311);
+
+ function Flag312 (N : Node_Id) return Boolean;
+ pragma Inline (Flag312);
+
+ function Flag313 (N : Node_Id) return Boolean;
+ pragma Inline (Flag313);
+
+ function Flag314 (N : Node_Id) return Boolean;
+ pragma Inline (Flag314);
+
+ function Flag315 (N : Node_Id) return Boolean;
+ pragma Inline (Flag315);
+
+ function Flag316 (N : Node_Id) return Boolean;
+ pragma Inline (Flag316);
+
+ function Flag317 (N : Node_Id) return Boolean;
+ pragma Inline (Flag317);
+
-- Procedures to set value of indicated field
procedure Set_Nkind (N : Node_Id; Val : Node_Kind);
@@ -2135,6 +2341,24 @@ package Atree is
procedure Set_Field29 (N : Node_Id; Val : Union_Id);
pragma Inline (Set_Field29);
+ procedure Set_Field30 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field30);
+
+ procedure Set_Field31 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field31);
+
+ procedure Set_Field32 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field32);
+
+ procedure Set_Field33 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field33);
+
+ procedure Set_Field34 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field34);
+
+ procedure Set_Field35 (N : Node_Id; Val : Union_Id);
+ pragma Inline (Set_Field35);
+
procedure Set_Node1 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node1);
@@ -3110,6 +3334,195 @@ package Atree is
procedure Set_Flag254 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag254);
+ procedure Set_Flag255 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag255);
+
+ procedure Set_Flag256 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag256);
+
+ procedure Set_Flag257 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag257);
+
+ procedure Set_Flag258 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag258);
+
+ procedure Set_Flag259 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag259);
+
+ procedure Set_Flag260 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag260);
+
+ procedure Set_Flag261 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag261);
+
+ procedure Set_Flag262 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag262);
+
+ procedure Set_Flag263 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag263);
+
+ procedure Set_Flag264 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag264);
+
+ procedure Set_Flag265 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag265);
+
+ procedure Set_Flag266 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag266);
+
+ procedure Set_Flag267 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag267);
+
+ procedure Set_Flag268 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag268);
+
+ procedure Set_Flag269 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag269);
+
+ procedure Set_Flag270 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag270);
+
+ procedure Set_Flag271 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag271);
+
+ procedure Set_Flag272 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag272);
+
+ procedure Set_Flag273 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag273);
+
+ procedure Set_Flag274 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag274);
+
+ procedure Set_Flag275 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag275);
+
+ procedure Set_Flag276 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag276);
+
+ procedure Set_Flag277 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag277);
+
+ procedure Set_Flag278 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag278);
+
+ procedure Set_Flag279 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag279);
+
+ procedure Set_Flag280 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag280);
+
+ procedure Set_Flag281 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag281);
+
+ procedure Set_Flag282 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag282);
+
+ procedure Set_Flag283 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag283);
+
+ procedure Set_Flag284 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag284);
+
+ procedure Set_Flag285 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag285);
+
+ procedure Set_Flag286 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag286);
+
+ procedure Set_Flag287 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag287);
+
+ procedure Set_Flag288 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag288);
+
+ procedure Set_Flag289 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag289);
+
+ procedure Set_Flag290 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag290);
+
+ procedure Set_Flag291 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag291);
+
+ procedure Set_Flag292 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag292);
+
+ procedure Set_Flag293 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag293);
+
+ procedure Set_Flag294 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag294);
+
+ procedure Set_Flag295 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag295);
+
+ procedure Set_Flag296 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag296);
+
+ procedure Set_Flag297 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag297);
+
+ procedure Set_Flag298 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag298);
+
+ procedure Set_Flag299 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag299);
+
+ procedure Set_Flag300 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag300);
+
+ procedure Set_Flag301 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag301);
+
+ procedure Set_Flag302 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag302);
+
+ procedure Set_Flag303 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag303);
+
+ procedure Set_Flag304 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag304);
+
+ procedure Set_Flag305 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag305);
+
+ procedure Set_Flag306 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag306);
+
+ procedure Set_Flag307 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag307);
+
+ procedure Set_Flag308 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag308);
+
+ procedure Set_Flag309 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag309);
+
+ procedure Set_Flag310 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag310);
+
+ procedure Set_Flag311 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag311);
+
+ procedure Set_Flag312 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag312);
+
+ procedure Set_Flag313 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag313);
+
+ procedure Set_Flag314 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag314);
+
+ procedure Set_Flag315 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag315);
+
+ procedure Set_Flag316 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag316);
+
+ procedure Set_Flag317 (N : Node_Id; Val : Boolean);
+ pragma Inline (Set_Flag317);
+
-- The following versions of Set_Noden also set the parent pointer of
-- the referenced node if it is not Empty.
@@ -3226,32 +3639,32 @@ package Atree is
Flag18 : Boolean;
-- The eighteen flags for a normal node
- -- The above fields are used as follows in components 2-5 of
+ -- The above fields are used as follows in components 2-6 of
-- an extended node entry.
- -- In_List used as Flag19, Flag40, Flag129, Flag216
- -- Has_Aspects used as Flag20, Flag41, Flag130, Flag217
- -- Rewrite_Ins used as Flag21, Flag42, Flag131, Flag218
- -- Analyzed used as Flag22, Flag43, Flag132, Flag219
- -- Comes_From_Source used as Flag23, Flag44, Flag133, Flag220
- -- Error_Posted used as Flag24, Flag45, Flag134, Flag221
- -- Flag4 used as Flag25, Flag46, Flag135, Flag222
- -- Flag5 used as Flag26, Flag47, Flag136, Flag223
- -- Flag6 used as Flag27, Flag48, Flag137, Flag224
- -- Flag7 used as Flag28, Flag49, Flag138, Flag225
- -- Flag8 used as Flag29, Flag50, Flag139, Flag226
- -- Flag9 used as Flag30, Flag51, Flag140, Flag227
- -- Flag10 used as Flag31, Flag52, Flag141, Flag228
- -- Flag11 used as Flag32, Flag53, Flag142, Flag229
- -- Flag12 used as Flag33, Flag54, Flag143, Flag230
- -- Flag13 used as Flag34, Flag55, Flag144, Flag231
- -- Flag14 used as Flag35, Flag56, Flag145, Flag232
- -- Flag15 used as Flag36, Flag57, Flag146, Flag233
- -- Flag16 used as Flag37, Flag58, Flag147, Flag234
- -- Flag17 used as Flag38, Flag59, Flag148, Flag235
- -- Flag18 used as Flag39, Flag60, Flag149, Flag236
- -- Pflag1 used as Flag61, Flag62, Flag150, Flag237
- -- Pflag2 used as Flag63, Flag64, Flag151, Flag238
+ -- In_List used as Flag19,Flag40,Flag129,Flag216,Flag287
+ -- Has_Aspects used as Flag20,Flag41,Flag130,Flag217,Flag288
+ -- Rewrite_Ins used as Flag21,Flag42,Flag131,Flag218,Flag289
+ -- Analyzed used as Flag22,Flag43,Flag132,Flag219,Flag290
+ -- Comes_From_Source used as Flag23,Flag44,Flag133,Flag220,Flag291
+ -- Error_Posted used as Flag24,Flag45,Flag134,Flag221,Flag292
+ -- Flag4 used as Flag25,Flag46,Flag135,Flag222,Flag293
+ -- Flag5 used as Flag26,Flag47,Flag136,Flag223,Flag294
+ -- Flag6 used as Flag27,Flag48,Flag137,Flag224,Flag295
+ -- Flag7 used as Flag28,Flag49,Flag138,Flag225,Flag296
+ -- Flag8 used as Flag29,Flag50,Flag139,Flag226,Flag297
+ -- Flag9 used as Flag30,Flag51,Flag140,Flag227,Flag298
+ -- Flag10 used as Flag31,Flag52,Flag141,Flag228,Flag299
+ -- Flag11 used as Flag32,Flag53,Flag142,Flag229,Flag300
+ -- Flag12 used as Flag33,Flag54,Flag143,Flag230,Flag301
+ -- Flag13 used as Flag34,Flag55,Flag144,Flag231,Flag302
+ -- Flag14 used as Flag35,Flag56,Flag145,Flag232,Flag303
+ -- Flag15 used as Flag36,Flag57,Flag146,Flag233,Flag304
+ -- Flag16 used as Flag37,Flag58,Flag147,Flag234,Flag305
+ -- Flag17 used as Flag38,Flag59,Flag148,Flag235,Flag306
+ -- Flag18 used as Flag39,Flag60,Flag149,Flag236,Flag307
+ -- Pflag1 used as Flag61,Flag62,Flag150,Flag237,Flag308
+ -- Pflag2 used as Flag63,Flag64,Flag151,Flag238,Flag309
Nkind : Node_Kind;
-- For a non-extended node, or the initial section of an extended
@@ -3262,6 +3675,7 @@ package Atree is
-- Third entry: holds 8 additional flags (Flag65-Flag72)
-- Fourth entry: holds 8 additional flags (Flag239-246)
-- Fifth entry: holds 8 additional flags (Flag247-254)
+ -- Sixth entry: holds 8 additional flags (Flag310-317)
-- Now finally (on an 32-bit boundary!) comes the variant part
@@ -3327,6 +3741,13 @@ package Atree is
-- Field6-11 Holds Field24-Field29
-- Field12 Holds Flag184-Flag215
+ -- In the sixth component, the extension format as described
+ -- above is used to hold additional general fields and flags
+ -- as follows:
+
+ -- Field6-11 Holds Field30-Field35
+ -- Field12 Holds Flag255-Flag286
+
end case;
end record;
@@ -3380,10 +3801,10 @@ package Atree is
Field5 => Empty_List_Or_Node);
-- Default value used to initialize node extensions (i.e. the second
- -- and third and fourth components of an extended node). Note we are
- -- cheating a bit here when it comes to Node12, which really holds
- -- flags an (for the third component), the convention. But it works
- -- because Empty, False, Convention_Ada, all happen to be all zero bits.
+ -- through sixth components of an extended node). Note we are cheating
+ -- a bit here when it comes to Node12, which really holds flags and (for
+ -- the third component), the convention. But it works because Empty,
+ -- False, Convention_Ada, all happen to be all zero bits.
Default_Node_Extension : constant Node_Record := (
Is_Extension => True,
diff --git a/gcc/ada/checks.adb b/gcc/ada/checks.adb
index 0c3f589..a0ca4c6 100644
--- a/gcc/ada/checks.adb
+++ b/gcc/ada/checks.adb
@@ -6239,6 +6239,8 @@ package body Checks is
declare
DRC : constant Boolean := Do_Range_Check (Exp);
+ PV : Node_Id;
+ CE : Node_Id;
begin
Set_Do_Range_Check (Exp, False);
@@ -6251,22 +6253,43 @@ package body Checks is
Force_Evaluation (Exp, Name_Req => True);
end if;
- -- Insert the validity check. Note that we do this with validity
- -- checks turned off, to avoid recursion, we do not want validity
- -- checks on the validity checking code itself!
+ -- Build the prefix for the 'Valid call
+
+ PV := Duplicate_Subexpr_No_Checks (Exp, Name_Req => True);
+
+ -- A rather specialized kludge. If PV is an analyzed expression
+ -- which is an indexed component of a packed array that has not
+ -- been properly expanded, turn off its Analyzed flag to make sure
+ -- it gets properly reexpanded.
+
+ -- The reason this arises is that Duplicate_Subexpr_No_Checks did
+ -- an analyze with the old parent pointer. This may point e.g. to
+ -- a subprogram call, which deactivates this expansion.
+
+ if Analyzed (PV)
+ and then Nkind (PV) = N_Indexed_Component
+ and then Present (Packed_Array_Type (Etype (Prefix (PV))))
+ then
+ Set_Analyzed (PV, False);
+ end if;
+
+ -- Build the raise CE node to check for validity
- Insert_Action
- (Expr,
+ CE :=
Make_Raise_Constraint_Error (Loc,
Condition =>
Make_Op_Not (Loc,
Right_Opnd =>
Make_Attribute_Reference (Loc,
- Prefix =>
- Duplicate_Subexpr_No_Checks (Exp, Name_Req => True),
+ Prefix => PV,
Attribute_Name => Name_Valid)),
- Reason => CE_Invalid_Data),
- Suppress => Validity_Check);
+ Reason => CE_Invalid_Data);
+
+ -- Insert the validity check. Note that we do this with validity
+ -- checks turned off, to avoid recursion, we do not want validity
+ -- checks on the validity checking code itself!
+
+ Insert_Action (Expr, CE, Suppress => Validity_Check);
-- If the expression is a reference to an element of a bit-packed
-- array, then it is rewritten as a renaming declaration. If the
diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb
index 5902256..ef4f191 100644
--- a/gcc/ada/einfo.adb
+++ b/gcc/ada/einfo.adb
@@ -244,6 +244,18 @@ package body Einfo is
-- Subprograms_For_Type Node29
+ -- (unused) Node30
+
+ -- (unused) Node31
+
+ -- (unused) Node32
+
+ -- (unused) Node33
+
+ -- (unused) Node34
+
+ -- (unused) Node35
+
---------------------------------------------
-- Usage of Flags in Defining Entity Nodes --
---------------------------------------------
@@ -253,7 +265,7 @@ package body Einfo is
-- sense for them to be set true for certain subsets of entity kinds. See
-- the spec of Einfo for further details.
- -- Note: Flag1-Flag3 are absent from this list, for historical reasons
+ -- Note: Flag1-Flag3 are not used, for historical reasons
-- Is_Frozen Flag4
-- Has_Discriminants Flag5
@@ -533,6 +545,76 @@ package body Einfo is
-- (unused) Flag201
+ -- (unused) Flag255
+ -- (unused) Flag256
+ -- (unused) Flag257
+ -- (unused) Flag258
+ -- (unused) Flag259
+ -- (unused) Flag260
+
+ -- (unused) Flag261
+ -- (unused) Flag262
+ -- (unused) Flag263
+ -- (unused) Flag264
+ -- (unused) Flag265
+ -- (unused) Flag266
+ -- (unused) Flag267
+ -- (unused) Flag268
+ -- (unused) Flag269
+ -- (unused) Flag270
+
+ -- (unused) Flag271
+ -- (unused) Flag272
+ -- (unused) Flag273
+ -- (unused) Flag274
+ -- (unused) Flag275
+ -- (unused) Flag276
+ -- (unused) Flag277
+ -- (unused) Flag278
+ -- (unused) Flag279
+ -- (unused) Flag280
+
+ -- (unused) Flag281
+ -- (unused) Flag282
+ -- (unused) Flag283
+ -- (unused) Flag284
+ -- (unused) Flag285
+ -- (unused) Flag286
+ -- (unused) Flag287
+ -- (unused) Flag288
+ -- (unused) Flag289
+ -- (unused) Flag290
+
+ -- (unused) Flag291
+ -- (unused) Flag292
+ -- (unused) Flag293
+ -- (unused) Flag294
+ -- (unused) Flag295
+ -- (unused) Flag296
+ -- (unused) Flag297
+ -- (unused) Flag298
+ -- (unused) Flag299
+ -- (unused) Flag300
+
+ -- (unused) Flag301
+ -- (unused) Flag302
+ -- (unused) Flag303
+ -- (unused) Flag304
+ -- (unused) Flag305
+ -- (unused) Flag306
+ -- (unused) Flag307
+ -- (unused) Flag308
+ -- (unused) Flag309
+ -- (unused) Flag310
+
+ -- (unused) Flag311
+ -- (unused) Flag312
+ -- (unused) Flag313
+ -- (unused) Flag314
+ -- (unused) Flag315
+ -- (unused) Flag316
+ -- (unused) Flag317
+
-----------------------
-- Local subprograms --
-----------------------
diff --git a/gcc/ada/exp_attr.adb b/gcc/ada/exp_attr.adb
index 2fa944b..1147724 100644
--- a/gcc/ada/exp_attr.adb
+++ b/gcc/ada/exp_attr.adb
@@ -5404,7 +5404,6 @@ package body Exp_Attr is
Ftp : Entity_Id;
begin
-
case Float_Rep (Btyp) is
-- For vax fpt types, call appropriate routine in special
diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb
index 01a6822..70e2fcd 100644
--- a/gcc/ada/exp_ch4.adb
+++ b/gcc/ada/exp_ch4.adb
@@ -3233,6 +3233,7 @@ package body Exp_Ch4 is
Prefix =>
Duplicate_Subexpr (Opnd, Name_Req => True),
Attribute_Name => Name_First);
+ Set_Parent (Opnd_Low_Bound (NN), Opnd);
-- Capture last operand bounds if result could be null
@@ -3243,6 +3244,7 @@ package body Exp_Ch4 is
Prefix =>
Duplicate_Subexpr (Opnd, Name_Req => True),
Attribute_Name => Name_First));
+ Set_Parent (Last_Opnd_Low_Bound, Opnd);
Last_Opnd_High_Bound :=
Convert_To (Ityp,
@@ -3250,6 +3252,7 @@ package body Exp_Ch4 is
Prefix =>
Duplicate_Subexpr (Opnd, Name_Req => True),
Attribute_Name => Name_Last));
+ Set_Parent (Last_Opnd_High_Bound, Opnd);
end if;
-- Capture length of operand in entity
diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb
index 2ca174e..c38ed03 100644
--- a/gcc/ada/exp_util.adb
+++ b/gcc/ada/exp_util.adb
@@ -444,9 +444,7 @@ package body Exp_Util is
-- Handle private types
- if Is_Private_Type (Utyp)
- and then Present (Full_View (Utyp))
- then
+ if Is_Private_Type (Utyp) and then Present (Full_View (Utyp)) then
Utyp := Full_View (Utyp);
end if;
@@ -750,9 +748,7 @@ package body Exp_Util is
-- Primitive Finalize_Address is never generated in CodePeer mode
-- since it contains an Unchecked_Conversion.
- if Needs_Finalization (Desig_Typ)
- and then not CodePeer_Mode
- then
+ if Needs_Finalization (Desig_Typ) and then not CodePeer_Mode then
Fin_Addr_Id := Find_Finalize_Address (Desig_Typ);
pragma Assert (Present (Fin_Addr_Id));
@@ -1588,9 +1584,7 @@ package body Exp_Util is
-- It is only array and record types that cause trouble
- if not Is_Record_Type (UT)
- and then not Is_Array_Type (UT)
- then
+ if not Is_Record_Type (UT) and then not Is_Array_Type (UT) then
return False;
-- If we know that we have a small (64 bits or less) record or small
@@ -1598,8 +1592,7 @@ package body Exp_Util is
-- handle these cases correctly.
elsif Esize (Comp) <= 64
- and then (Is_Record_Type (UT)
- or else Is_Bit_Packed_Array (UT))
+ and then (Is_Record_Type (UT) or else Is_Bit_Packed_Array (UT))
then
return False;
@@ -1740,7 +1733,6 @@ package body Exp_Util is
Name_Req : Boolean := False) return Node_Id
is
New_Exp : Node_Id;
-
begin
Remove_Side_Effects (Exp, Name_Req);
New_Exp := New_Copy_Tree (Exp);
@@ -1775,9 +1767,7 @@ package body Exp_Util is
-- An itype reference must only be created if this is a local itype, so
-- that gigi can elaborate it on the proper objstack.
- if Is_Itype (Typ)
- and then Scope (Typ) = Current_Scope
- then
+ if Is_Itype (Typ) and then Scope (Typ) = Current_Scope then
IR := Make_Itype_Reference (Sloc (N));
Set_Itype (IR, Typ);
Insert_Action (N, IR);
@@ -1985,8 +1975,7 @@ package body Exp_Util is
-- standard string types and more generally arrays of characters.
if not Expander_Active
- and then (No (Etype (Exp))
- or else not Is_String_Type (Etype (Exp)))
+ and then (No (Etype (Exp)) or else not Is_String_Type (Etype (Exp)))
then
return;
end if;
@@ -2179,9 +2168,7 @@ package body Exp_Util is
-- Handle private types
- if Has_Private_Declaration (Typ)
- and then Present (Full_View (Typ))
- then
+ if Has_Private_Declaration (Typ) and then Present (Full_View (Typ)) then
Typ := Full_View (Typ);
end if;
@@ -2309,9 +2296,7 @@ package body Exp_Util is
-- Handle private types
- if Has_Private_Declaration (Typ)
- and then Present (Full_View (Typ))
- then
+ if Has_Private_Declaration (Typ) and then Present (Full_View (Typ)) then
Typ := Full_View (Typ);
end if;
@@ -2374,7 +2359,7 @@ package body Exp_Util is
exit when Chars (Op) = Name
and then
(Name /= Name_Op_Eq
- or else Etype (First_Formal (Op)) = Etype (Last_Formal (Op)));
+ or else Etype (First_Formal (Op)) = Etype (Last_Formal (Op)));
Next_Elmt (Prim);
@@ -2446,10 +2431,7 @@ package body Exp_Util is
begin
S := Scop;
while Present (S) loop
- if (Ekind (S) = E_Entry
- or else Ekind (S) = E_Entry_Family
- or else Ekind (S) = E_Function
- or else Ekind (S) = E_Procedure)
+ if Ekind_In (S, E_Entry, E_Entry_Family, E_Function, E_Procedure)
and then Present (Protection_Object (S))
then
return Protection_Object (S);
@@ -2634,9 +2616,8 @@ package body Exp_Util is
-- Deal with AND THEN and AND cases
- if Nkind (Cond) = N_And_Then
- or else Nkind (Cond) = N_Op_And
- then
+ if Nkind_In (Cond, N_And_Then, N_Op_And) then
+
-- Don't ever try to invert a condition that is of the form of an
-- AND or AND THEN (since we are not doing sufficiently general
-- processing to allow this).
@@ -2715,9 +2696,7 @@ package body Exp_Util is
-- reference had said var = True.
else
- if Is_Entity_Name (Cond)
- and then Ent = Entity (Cond)
- then
+ if Is_Entity_Name (Cond) and then Ent = Entity (Cond) then
Val := New_Occurrence_Of (Standard_True, Sloc (Cond));
if Sens = False then
@@ -2947,9 +2926,7 @@ package body Exp_Util is
T : constant Entity_Id := Etype (E);
begin
- if Has_Per_Object_Constraint (E)
- and then Has_Discriminants (T)
- then
+ if Has_Per_Object_Constraint (E) and then Has_Discriminants (T) then
Disc := First_Discriminant (T);
while Present (Disc) loop
if Is_Access_Type (Etype (Disc)) then
@@ -3437,9 +3414,7 @@ package body Exp_Util is
-- actions should be inserted outside the complete record
-- declaration.
- elsif Nkind (Parent (P)) = N_Variant
- or else Nkind (Parent (P)) = N_Record_Definition
- then
+ elsif Nkind_In (Parent (P), N_Variant, N_Record_Definition) then
null;
-- Do not insert freeze nodes within the loop generated for
@@ -3784,9 +3759,7 @@ package body Exp_Util is
Ins_Actions : List_Id)
is
begin
- if Scope_Is_Transient
- and then Assoc_Node = Node_To_Be_Wrapped
- then
+ if Scope_Is_Transient and then Assoc_Node = Node_To_Be_Wrapped then
Store_After_Actions_In_Scope (Ins_Actions);
else
Insert_List_After_And_Analyze (Assoc_Node, Ins_Actions);
@@ -3846,9 +3819,7 @@ package body Exp_Util is
begin
S := Current_Scope;
- while Present (S)
- and then S /= Standard_Standard
- loop
+ while Present (S) and then S /= Standard_Standard loop
if Is_Init_Proc (S) then
return True;
else
@@ -4139,7 +4110,7 @@ package body Exp_Util is
Next (Param);
end loop;
- return Access_OK and then Alloc_OK;
+ return Access_OK and Alloc_OK;
end;
end if;
@@ -4235,9 +4206,7 @@ package body Exp_Util is
elsif Nkind (Stmt) = N_Object_Renaming_Declaration then
Ren_Obj := Find_Renamed_Object (Stmt);
- if Present (Ren_Obj)
- and then Ren_Obj = Trans_Id
- then
+ if Present (Ren_Obj) and then Ren_Obj = Trans_Id then
return True;
end if;
end if;
@@ -4439,8 +4408,7 @@ package body Exp_Util is
function Is_Library_Level_Tagged_Type (Typ : Entity_Id) return Boolean is
begin
- return Is_Tagged_Type (Typ)
- and then Is_Library_Level_Entity (Typ);
+ return Is_Tagged_Type (Typ) and then Is_Library_Level_Entity (Typ);
end Is_Library_Level_Tagged_Type;
--------------------------
@@ -4700,7 +4668,7 @@ package body Exp_Util is
if Known_Alignment (Ptyp)
and then (Unknown_Alignment (Styp)
- or else Alignment (Styp) > Alignment (Ptyp))
+ or else Alignment (Styp) > Alignment (Ptyp))
then
return True;
end if;
@@ -4776,10 +4744,7 @@ package body Exp_Util is
return Is_Ref_To_Bit_Packed_Array (Renamed_Object (Entity (N)));
end if;
- if Nkind (N) = N_Indexed_Component
- or else
- Nkind (N) = N_Selected_Component
- then
+ if Nkind_In (N, N_Indexed_Component, N_Selected_Component) then
if Is_Bit_Packed_Array (Etype (Prefix (N))) then
Result := True;
else
@@ -4821,10 +4786,7 @@ package body Exp_Util is
then
return True;
- elsif Nkind (N) = N_Indexed_Component
- or else
- Nkind (N) = N_Selected_Component
- then
+ elsif Nkind_In (N, N_Indexed_Component, N_Selected_Component) then
return Is_Ref_To_Bit_Packed_Slice (Prefix (N));
else
@@ -4971,9 +4933,9 @@ package body Exp_Util is
elsif Nkind_In (N, N_Indexed_Component, N_Selected_Component) then
if (Is_Entity_Name (Prefix (N))
- and then Has_Volatile_Components (Entity (Prefix (N))))
+ and then Has_Volatile_Components (Entity (Prefix (N))))
or else (Present (Etype (Prefix (N)))
- and then Has_Volatile_Components (Etype (Prefix (N))))
+ and then Has_Volatile_Components (Etype (Prefix (N))))
then
return True;
else
@@ -4995,9 +4957,9 @@ package body Exp_Util is
and then (Nkind (N) = N_Slice
or else
(Nkind (N) = N_Identifier
- and then Present (Renamed_Object (Entity (N)))
- and then Nkind (Renamed_Object (Entity (N)))
- = N_Slice));
+ and then Present (Renamed_Object (Entity (N)))
+ and then Nkind (Renamed_Object (Entity (N))) =
+ N_Slice));
end Is_VM_By_Copy_Actual;
--------------------
@@ -5031,7 +4993,7 @@ package body Exp_Util is
and then
(In_Instance
or else (Present (Entity (C))
- and then Has_Warnings_Off (Entity (C))))
+ and then Has_Warnings_Off (Entity (C))))
then
W := False;
end if;
@@ -5137,15 +5099,12 @@ package body Exp_Util is
function Known_Non_Negative (Opnd : Node_Id) return Boolean is
begin
- if Is_OK_Static_Expression (Opnd)
- and then Expr_Value (Opnd) >= 0
- then
+ if Is_OK_Static_Expression (Opnd) and then Expr_Value (Opnd) >= 0 then
return True;
else
declare
Lo : constant Node_Id := Type_Low_Bound (Etype (Opnd));
-
begin
return
Is_OK_Static_Expression (Lo) and then Expr_Value (Lo) >= 0;
@@ -5751,9 +5710,7 @@ package body Exp_Util is
elsif Esize (Typ) /= 0 and then Esize (Typ) <= 256 then
return False;
- elsif Is_Array_Type (Typ)
- and then Present (Packed_Array_Type (Typ))
- then
+ elsif Is_Array_Type (Typ) and then Present (Packed_Array_Type (Typ)) then
return May_Generate_Large_Temp (Packed_Array_Type (Typ));
-- We could do more here to find other small types ???
@@ -5842,8 +5799,8 @@ package body Exp_Util is
or else Has_Some_Controlled_Component (T)
or else
(Is_Concurrent_Type (T)
- and then Present (Corresponding_Record_Type (T))
- and then Needs_Finalization (Corresponding_Record_Type (T)));
+ and then Present (Corresponding_Record_Type (T))
+ and then Needs_Finalization (Corresponding_Record_Type (T)));
end if;
end Needs_Finalization;
@@ -5885,7 +5842,7 @@ package body Exp_Util is
or else Is_Access_Type (Typ)
or else
(Is_Bit_Packed_Array (Typ)
- and then Is_Modular_Integer_Type (Packed_Array_Type (Typ)))
+ and then Is_Modular_Integer_Type (Packed_Array_Type (Typ)))
then
return False;
@@ -6519,7 +6476,32 @@ package body Exp_Util is
and then Is_Renaming_Of_Object (Entity (Original_Node (N)))
and then Ekind (Entity (Original_Node (N))) /= E_Constant
then
- return False;
+ declare
+ RO : constant Node_Id :=
+ Renamed_Object (Entity (Original_Node (N)));
+
+ begin
+ -- If the renamed object is an indexed component, or an
+ -- explicit dereference, then the designated object could
+ -- be modified by an assignment.
+
+ if Nkind_In (RO, N_Indexed_Component,
+ N_Explicit_Dereference)
+ then
+ return False;
+
+ -- A selected component must have a safe prefix
+
+ elsif Nkind (RO) = N_Selected_Component then
+ return Safe_Prefixed_Reference (RO);
+
+ -- In all other cases, designated object cannot be changed so
+ -- we are side effect free.
+
+ else
+ return True;
+ end if;
+ end;
-- Remove_Side_Effects generates an object renaming declaration to
-- capture the expression of a class-wide expression. In VM targets
@@ -6708,9 +6690,7 @@ package body Exp_Util is
elsif Is_Entity_Name (N) then
return Ekind (Entity (N)) = E_In_Parameter;
- elsif Nkind (N) = N_Indexed_Component
- or else Nkind (N) = N_Selected_Component
- then
+ elsif Nkind_In (N, N_Indexed_Component, N_Selected_Component) then
return Within_In_Parameter (Prefix (N));
else
@@ -6757,9 +6737,9 @@ package body Exp_Util is
if Is_Elementary_Type (Exp_Type)
and then (Variable_Ref
- or else Nkind (Exp) = N_Function_Call
- or else Nkind (Exp) = N_Attribute_Reference
- or else Nkind (Exp) = N_Allocator
+ or else Nkind_In (Exp, N_Function_Call,
+ N_Attribute_Reference,
+ N_Allocator)
or else Nkind (Exp) in N_Op
or else (not Name_Req and then Is_Volatile_Reference (Exp)))
then
@@ -6918,8 +6898,7 @@ package body Exp_Util is
-- by the expression it renames, which would defeat the purpose of
-- removing the side-effect.
- if (Nkind (Exp) = N_Selected_Component
- or else Nkind (Exp) = N_Indexed_Component)
+ if Nkind_In (Exp, N_Selected_Component, N_Indexed_Component)
and then Has_Non_Standard_Rep (Etype (Prefix (Exp)))
then
null;
@@ -6933,9 +6912,7 @@ package body Exp_Util is
-- An expression which is in Alfa mode is considered side effect free
-- if the resulting value is captured by a variable or a constant.
- if Alfa_Mode
- and then Nkind (Parent (Exp)) = N_Object_Declaration
- then
+ if Alfa_Mode and then Nkind (Parent (Exp)) = N_Object_Declaration then
goto Leave;
end if;
@@ -7079,7 +7056,7 @@ package body Exp_Util is
begin
return Is_Scalar_Type (UT)
or else (Is_Bit_Packed_Array (UT)
- and then Is_Scalar_Type (Packed_Array_Type (UT)));
+ and then Is_Scalar_Type (Packed_Array_Type (UT)));
end Represented_As_Scalar;
------------------------------
@@ -7200,7 +7177,7 @@ package body Exp_Util is
elsif not Is_Imported (Obj_Id)
and then Needs_Finalization (Obj_Typ)
and then not (Ekind (Obj_Id) = E_Constant
- and then not Has_Completion (Obj_Id))
+ and then not Has_Completion (Obj_Id))
and then not Is_Tag_To_Class_Wide_Conversion (Obj_Id)
then
return True;
@@ -7241,7 +7218,7 @@ package body Exp_Util is
elsif Is_Access_Type (Obj_Typ)
and then Present (Status_Flag_Or_Transient_Decl (Obj_Id))
and then Nkind (Status_Flag_Or_Transient_Decl (Obj_Id)) =
- N_Defining_Identifier
+ N_Defining_Identifier
and then Present (Expr)
and then Nkind (Expr) = N_Null
then
@@ -7319,7 +7296,7 @@ package body Exp_Util is
(Available_View (Designated_Type (Typ))))
or else
(Is_Type (Typ)
- and then Needs_Finalization (Typ)))
+ and then Needs_Finalization (Typ)))
and then Requires_Cleanup_Actions
(Actions (Decl), Lib_Level, Nested_Constructs)
then
@@ -7338,17 +7315,15 @@ package body Exp_Util is
end if;
if Ekind (Pack_Id) /= E_Generic_Package
- and then Requires_Cleanup_Actions
- (Specification (Decl), Lib_Level)
+ and then
+ Requires_Cleanup_Actions (Specification (Decl), Lib_Level)
then
return True;
end if;
-- Nested package bodies
- elsif Nested_Constructs
- and then Nkind (Decl) = N_Package_Body
- then
+ elsif Nested_Constructs and then Nkind (Decl) = N_Package_Body then
Pack_Id := Corresponding_Spec (Decl);
if Ekind (Pack_Id) /= E_Generic_Package
@@ -7391,8 +7366,8 @@ package body Exp_Util is
if (Nkind (Pexp) = N_Assignment_Statement
and then Expression (Pexp) = Exp)
- or else Nkind (Pexp) = N_Object_Declaration
- or else Nkind (Pexp) = N_Object_Renaming_Declaration
+ or else Nkind_In (Pexp, N_Object_Declaration,
+ N_Object_Renaming_Declaration)
then
return True;
@@ -7403,7 +7378,7 @@ package body Exp_Util is
-- introduce a temporary in this case.
elsif Nkind (Pexp) = N_Selected_Component
- and then Prefix (Pexp) = Exp
+ and then Prefix (Pexp) = Exp
then
if No (Etype (Pexp)) then
return True;
@@ -7491,7 +7466,7 @@ package body Exp_Util is
elsif Size_Known_At_Compile_Time (Otyp)
and then
(not Stack_Checking_Enabled
- or else not May_Generate_Large_Temp (Otyp))
+ or else not May_Generate_Large_Temp (Otyp))
and then not (Is_Record_Type (Otyp) and then not Is_Constrained (Otyp))
then
return True;
diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
index 1756b46..cad64a3 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -4377,11 +4377,12 @@ ada/validsw.o : ada/ada.ads ada/a-unccon.ads ada/a-uncdea.ads \
ada/warnsw.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/err_vars.ads \
ada/hostparm.ads ada/namet.ads ada/opt.ads ada/output.ads \
- ada/system.ads ada/s-exctab.ads ada/s-memory.ads ada/s-os_lib.ads \
- ada/s-parame.ads ada/s-stalib.ads ada/s-string.ads ada/s-traent.ads \
- ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
- ada/tree_io.ads ada/types.ads ada/uintp.ads ada/unchconv.ads \
- ada/unchdeal.ads ada/warnsw.ads ada/warnsw.adb
+ ada/rident.ads ada/system.ads ada/s-exctab.ads ada/s-memory.ads \
+ ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-stalib.ads \
+ ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
+ ada/table.ads ada/table.adb ada/targparm.ads ada/tree_io.ads \
+ ada/types.ads ada/uintp.ads ada/unchconv.ads ada/unchdeal.ads \
+ ada/warnsw.ads ada/warnsw.adb
ada/widechar.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/hostparm.ads ada/interfac.ads ada/opt.ads \
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index bbb05a1..a9548bf 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -770,7 +770,7 @@ ifeq ($(strip $(filter-out %86 wrs vxworksae vxworksmils,$(targ))),)
endif
# Sparc VxWorks
-ifeq ($(strip $(filter-out sparc% wrs vx%,$(targ))),)
+ifeq ($(strip $(filter-out sparc% leon% wrs vx%,$(targ))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<a-intnam-vxworks.ads \
a-numaux.ads<a-numaux-vxworks.ads \
@@ -797,7 +797,7 @@ ifeq ($(strip $(filter-out sparc% wrs vx%,$(targ))),)
mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
indepsw.adb<indepsw-gnu.adb
- ifeq ($(arch),sparc)
+ ifeq ($(strip $(filter-out sparc erc32 leon leon3, $(arch))),)
# 32-bits
LIBGNAT_TARGET_PAIRS += \
s-vxwork.ads<s-vxwork-sparc.ads \
@@ -1535,6 +1535,7 @@ ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(targ)))
$(ATOMICS_BUILTINS_TARGET_PAIRS)
EXTRA_LIBGNAT_SRCS+=tb-ivms.c
+ override GNATRTL_ALTIVEC_OBJS=
TOOLS_TARGET_PAIRS= \
mlib-tgt-specific.adb<mlib-tgt-specific-vms-ia64.adb \
@@ -2357,7 +2358,9 @@ ADA_EXCLUDE_SRCS =\
s-vxwexc.adb s-vxwexc.ads s-vxwext.adb s-vxwext.ads \
s-win32.ads s-winext.ads \
g-regist.adb g-regist.ads g-sse.ads g-ssvety.ads \
- i-vxwoio.adb i-vxwoio.ads i-vxwork.ads
+ i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \
+ g-allein.ads g-alleve.ads g-altcon.ads g-alveop.adb g-alvety.ads \
+ g-alleve.adb g-altcon.adb g-altive.ads g-alveop.ads g-alvevi.ads
# ADA_EXCLUDE_SRCS without the sources used by the target
ADA_EXCLUDE_FILES=$(filter-out \
diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi
index 81d1214..257ee1f 100644
--- a/gcc/ada/gnat_rm.texi
+++ b/gcc/ada/gnat_rm.texi
@@ -11546,6 +11546,30 @@ The default alignment for the type @code{V} is 4, as a result of the
Integer field in the record, but it is permissible, as shown, to
override the default alignment of the record with a smaller value.
+@cindex Alignment, subtypes
+Note that according to the Ada standard, an alignment clause applies only
+to the first named subtype. If additional subtypes are declared, then the
+compiler is allowed to choose any alignment it likes, and there is no way
+to control this choice. Consider:
+
+@smallexample @c ada
+ type R is range 1 .. 10_000;
+ for R'Alignment use 1;
+ subtype RS is R range 1 .. 1000;
+@end smallexample
+
+@noindent
+The alignment clause specifies an alignment of 1 for the first named subtype
+@code{R} but this does not necessarily apply to @code{RS}. When writing
+portable Ada code, you should avoid writing code that explicitly or
+implicitly relies on the alignment of such subtypes.
+
+For the GNAT compiler, if an explicit alignment clause is given, this
+value is also used for any subsequent subtypes. So for GNAT, in the
+above example, you can count on the alignment of @code{RS} being 1. But this
+assumption is non-portable, and other compilers may choose different
+alignments for the subtype @code{RS}.
+
@node Size Clauses
@section Size Clauses
@cindex Size Clause
diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi
index 76e90a6..87cd97d 100644
--- a/gcc/ada/gnat_ugn.texi
+++ b/gcc/ada/gnat_ugn.texi
@@ -5214,7 +5214,7 @@ individually controlled. The warnings that are not turned on by this
switch are
@option{-gnatwd} (implicit dereferencing),
@option{-gnatwh} (hiding),
-@ifclear VMS
+@ifclear vms
@option{-gnatw.d} (tag warnings with -gnatw switch)
@end ifclear
@option{-gnatw.h} (holes (gaps) in record layouts)
diff --git a/gcc/ada/prj.adb b/gcc/ada/prj.adb
index bfe08d0..de2254c 100644
--- a/gcc/ada/prj.adb
+++ b/gcc/ada/prj.adb
@@ -461,6 +461,11 @@ package body Prj is
if Iter.Current = No_Source then
Iter.Language := Iter.Language.Next;
Language_Changed (Iter);
+
+ elsif not Iter.Locally_Removed
+ and then Iter.Current.Locally_Removed
+ then
+ Next (Iter);
end if;
end if;
end Language_Changed;
@@ -473,7 +478,8 @@ package body Prj is
(In_Tree : Project_Tree_Ref;
Project : Project_Id := No_Project;
Language : Name_Id := No_Name;
- Encapsulated_Libs : Boolean := True) return Source_Iterator
+ Encapsulated_Libs : Boolean := True;
+ Locally_Removed : Boolean := True) return Source_Iterator
is
Iter : Source_Iterator;
begin
@@ -484,7 +490,8 @@ package body Prj is
Language_Name => Language,
Language => No_Language_Index,
Current => No_Source,
- Encapsulated_Libs => Encapsulated_Libs);
+ Encapsulated_Libs => Encapsulated_Libs,
+ Locally_Removed => Locally_Removed);
if Project /= null then
while Iter.Project /= null
@@ -521,7 +528,14 @@ package body Prj is
procedure Next (Iter : in out Source_Iterator) is
begin
- Iter.Current := Iter.Current.Next_In_Lang;
+ loop
+ Iter.Current := Iter.Current.Next_In_Lang;
+
+ exit when Iter.Locally_Removed
+ or else Iter.Current = No_Source
+ or else not Iter.Current.Locally_Removed;
+ end loop;
+
if Iter.Current = No_Source then
Iter.Language := Iter.Language.Next;
Language_Changed (Iter);
diff --git a/gcc/ada/prj.ads b/gcc/ada/prj.ads
index f3ca31b..449b038 100644
--- a/gcc/ada/prj.ads
+++ b/gcc/ada/prj.ads
@@ -1466,10 +1466,12 @@ package Prj is
(In_Tree : Project_Tree_Ref;
Project : Project_Id := No_Project;
Language : Name_Id := No_Name;
- Encapsulated_Libs : Boolean := True) return Source_Iterator;
+ Encapsulated_Libs : Boolean := True;
+ Locally_Removed : Boolean := True) return Source_Iterator;
-- Returns an iterator for all the sources of a project tree, or a specific
-- project, or a specific language. Include sources from aggregated libs if
- -- Aggregated_Libs is True.
+ -- Aggregated_Libs is True. If Locally_Removed is set to False the
+ -- Locally_Removed files won't be reported.
function Element (Iter : Source_Iterator) return Source_Id;
-- Return the current source (or No_Source if there are no more sources)
@@ -1923,6 +1925,8 @@ private
Encapsulated_Libs : Boolean;
-- True if we want to include the sources from encapsulated libs
+
+ Locally_Removed : Boolean;
end record;
procedure Add_To_Buffer
diff --git a/gcc/ada/validsw.ads b/gcc/ada/validsw.ads
index afc4fa5..db9ceb2 100644
--- a/gcc/ada/validsw.ads
+++ b/gcc/ada/validsw.ads
@@ -78,7 +78,7 @@ package Validsw is
Validity_Check_In_Params : Boolean := False;
-- Controls the validity checking of IN parameters. If this switch is
- -- set to True using -gnatVm or an 'i' in the argument of a pragma
+ -- set to True using -gnatVi or an 'i' in the argument of a pragma
-- Validity_Checks, then the initial value of all IN parameters
-- will be checked at the point of call of a procedure or function.
diff --git a/gcc/ada/warnsw.adb b/gcc/ada/warnsw.adb
index 9f8512f..337f469 100644
--- a/gcc/ada/warnsw.adb
+++ b/gcc/ada/warnsw.adb
@@ -22,9 +22,10 @@
-- Extensive contributions were provided by Ada Core Technologies Inc. --
-- --
------------------------------------------------------------------------------
+
with Err_Vars; use Err_Vars;
with Opt; use Opt;
-
+with Targparm; use Targparm;
package body Warnsw is
----------------------------
@@ -53,14 +54,14 @@ package body Warnsw is
Warn_On_Unrepped_Components := False;
when 'd' =>
- if Open_VMS_On_Target then
+ if OpenVMS_On_Target then
return False;
end if;
Warning_Doc_Switch := True;
when 'D' =>
- if Open_VMS_On_Target then
+ if OpenVMS_On_Target then
return False;
end if;
@@ -76,7 +77,11 @@ package body Warnsw is
Implementation_Unit_Warnings := True;
Ineffective_Inline_Warnings := True;
List_Inherited_Aspects := True;
- Warning_Doc_Switch := True;
+
+ if not OpenVMS_On_Target then
+ Warning_Doc_Switch := True;
+ end if;
+
Warn_On_Ada_2005_Compatibility := True;
Warn_On_Ada_2012_Compatibility := True;
Warn_On_All_Unread_Out_Parameters := True;