From patchwork Fri Jan 4 10:09:47 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnaud Charlet X-Patchwork-Id: 209434 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id B04512C0082 for ; Fri, 4 Jan 2013 21:10:30 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1357899031; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:Received:Date:From:To:Cc:Subject:Message-ID: MIME-Version:Content-Type:Content-Disposition:User-Agent: Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:Sender:Delivered-To; bh=jgB9gesJ3hbqzyfDDH/H 02spwj8=; b=aq6OMOB1jKL+2Vh3EtBYDvxxqMMF0FfPvJGMcZkhpAOaZuUdYDnT TFuQ24X0/vUZ25rJNcWz4xkO6Z85324MVcyF2Oou+bT141zkkDOnFGAGmtqyp3WB AkkYBtieyPwrXGIPvaG5/idDNys0i910RTnYDe7N1lTtRdgnTydL7TA= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Received:Received:Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type:Content-Disposition:User-Agent:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=LkoegBVusvGBgfuz+wkxdFINc6wXOdTnZ3S0VCQtXL03Qy/BYqUiZBETelsFYm BC++z8x5yyp7uokE1adiFwGFhCywG9S98CK/Lcub1vykb9U3Oq8klUK9W9+8I1uT awaQwxHWS/hqt3Azru067OwXwbYCA7Ka01WUNcmnImZHQ=; Received: (qmail 19870 invoked by alias); 4 Jan 2013 10:10:06 -0000 Received: (qmail 19845 invoked by uid 22791); 4 Jan 2013 10:10:04 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL, BAYES_00, RCVD_IN_HOSTKARMA_NO X-Spam-Check-By: sourceware.org Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 04 Jan 2013 10:09:48 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 45F362E520; Fri, 4 Jan 2013 05:09:47 -0500 (EST) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id FiL-sATKkKcB; Fri, 4 Jan 2013 05:09:47 -0500 (EST) Received: from kwai.gnat.com (kwai.gnat.com [205.232.38.4]) by rock.gnat.com (Postfix) with ESMTP id 1491B2E518; Fri, 4 Jan 2013 05:09:47 -0500 (EST) Received: by kwai.gnat.com (Postfix, from userid 4192) id 0F9473FF09; Fri, 4 Jan 2013 05:09:47 -0500 (EST) Date: Fri, 4 Jan 2013 05:09:47 -0500 From: Arnaud Charlet To: gcc-patches@gcc.gnu.org Cc: Robert Dewar Subject: [Ada] Internal increase in size of entities Message-ID: <20130104100946.GA12339@adacore.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org This patch enlarges entities to make 63 more flags, 6 more fields. This is an internal change only, no functional effect, no test required. Tested on x86_64-pc-linux-gnu, committed on trunk 2013-01-04 Robert Dewar * einfo.adb, atree.adb: Enlarge entities to make 63 more flags, 6 more fields. Index: einfo.adb =================================================================== --- einfo.adb (revision 194887) +++ einfo.adb (working copy) @@ -244,6 +244,18 @@ -- 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 @@ -- 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 @@ -- (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 -- ----------------------- Index: atree.adb =================================================================== --- atree.adb (revision 194841) +++ atree.adb (working copy) @@ -205,6 +205,31 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ (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); Index: atree.ads =================================================================== --- atree.ads (revision 194845) +++ atree.ads (working copy) @@ -196,9 +196,9 @@ -- 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 @@ -- 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 @@ -- 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 @@ -- 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ -- 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 @@ -- 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 @@ 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,