Commit 165eab5f by Arnaud Charlet

atree.adb: Add a fifth component to entities This allows us to add 32 flags and four new fields

	* atree.adb: Add a fifth component to entities
	This allows us to add 32 flags and four new fields

	* atree.ads: Add a fifth component to entities
	This allows us to add 32 flags and four new fields

	* einfo.ads, einfo.adb: Document new fields and new flags now available
	Add routines for printing new fields

	* treepr.adb: Call routines to print out additional fields if present

From-SVN: r92830
parent 5f3ab6fb
......@@ -209,6 +209,11 @@ package body Einfo is
-- Privals_Chain Elist23
-- Protected_Operation Node23
-- (unused) Node24
-- (unused) Node25
-- (unused) Node26
-- (unused) Node27
---------------------------------------------
-- Usage of Flags in Defining Entity Nodes --
---------------------------------------------
......@@ -421,6 +426,38 @@ package body Einfo is
-- Must_Be_On_Byte_Boundary Flag183
-- (unused) Flag153
-- (unused) Flag184
-- (unused) Flag185
-- (unused) Flag186
-- (unused) Flag187
-- (unused) Flag188
-- (unused) Flag189
-- (unused) Flag190
-- (unused) Flag191
-- (unused) Flag192
-- (unused) Flag193
-- (unused) Flag194
-- (unused) Flag195
-- (unused) Flag196
-- (unused) Flag197
-- (unused) Flag198
-- (unused) Flag199
-- (unused) Flag200
-- (unused) Flag201
-- (unused) Flag202
-- (unused) Flag203
-- (unused) Flag204
-- (unused) Flag205
-- (unused) Flag206
-- (unused) Flag207
-- (unused) Flag208
-- (unused) Flag209
-- (unused) Flag210
-- (unused) Flag211
-- (unused) Flag212
-- (unused) Flag213
-- (unused) Flag214
-- (unused) Flag215
--------------------------------
-- Attribute Access Functions --
......@@ -6078,6 +6115,10 @@ package body Einfo is
procedure W (Flag_Name : String; Flag : Boolean);
-- Write out given flag if it is set
-------
-- W --
-------
procedure W (Flag_Name : String; Flag : Boolean) is
begin
if Flag then
......@@ -7159,6 +7200,54 @@ package body Einfo is
end case;
end Write_Field23_Name;
------------------------
-- Write_Field24_Name --
------------------------
procedure Write_Field24_Name (Id : Entity_Id) is
begin
case Ekind (Id) is
when others =>
Write_Str ("Field24??");
end case;
end Write_Field24_Name;
------------------------
-- Write_Field25_Name --
------------------------
procedure Write_Field25_Name (Id : Entity_Id) is
begin
case Ekind (Id) is
when others =>
Write_Str ("Field25??");
end case;
end Write_Field25_Name;
------------------------
-- Write_Field26_Name --
------------------------
procedure Write_Field26_Name (Id : Entity_Id) is
begin
case Ekind (Id) is
when others =>
Write_Str ("Field26??");
end case;
end Write_Field26_Name;
------------------------
-- Write_Field27_Name --
------------------------
procedure Write_Field27_Name (Id : Entity_Id) is
begin
case Ekind (Id) is
when others =>
Write_Str ("Field27??");
end case;
end Write_Field27_Name;
-------------------------
-- Iterator Procedures --
-------------------------
......
......@@ -5960,6 +5960,10 @@ package Einfo is
procedure Write_Field21_Name (Id : Entity_Id);
procedure Write_Field22_Name (Id : Entity_Id);
procedure Write_Field23_Name (Id : Entity_Id);
procedure Write_Field24_Name (Id : Entity_Id);
procedure Write_Field25_Name (Id : Entity_Id);
procedure Write_Field26_Name (Id : Entity_Id);
procedure Write_Field27_Name (Id : Entity_Id);
-- These routines are used to output a nice symbolic name for the given
-- field, depending on the Ekind. No blanks or end of lines are output,
-- just the characters of the field name.
......
......@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 1992-2002 Free Software Foundation, Inc. --
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
......@@ -539,8 +539,39 @@ package body Treepr is
Print_Eol;
end if;
Write_Entity_Flags (Ent, Prefix);
if Field_Present (Field24 (Ent)) then
Print_Str (Prefix);
Write_Field24_Name (Ent);
Write_Str (" = ");
Print_Field (Field24 (Ent));
Print_Eol;
end if;
if Field_Present (Field25 (Ent)) then
Print_Str (Prefix);
Write_Field25_Name (Ent);
Write_Str (" = ");
Print_Field (Field25 (Ent));
Print_Eol;
end if;
if Field_Present (Field26 (Ent)) then
Print_Str (Prefix);
Write_Field26_Name (Ent);
Write_Str (" = ");
Print_Field (Field26 (Ent));
Print_Eol;
end if;
if Field_Present (Field27 (Ent)) then
Print_Str (Prefix);
Write_Field27_Name (Ent);
Write_Str (" = ");
Print_Field (Field27 (Ent));
Print_Eol;
end if;
Write_Entity_Flags (Ent, Prefix);
end Print_Entity_Info;
---------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment