summaryrefslogtreecommitdiff
path: root/gcc/ada/bindgen.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-04 11:06:19 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-04 11:06:19 +0000
commit1147840a03d8b5bb79089f8c2a13c912ab02a19f (patch)
treeeb723f684eca66cfc93f09df6fa537a3371b2f14 /gcc/ada/bindgen.adb
parentdfabcc74d4cc132642d1c73f735b9b5893ea9f44 (diff)
downloadgcc-1147840a03d8b5bb79089f8c2a13c912ab02a19f.tar.gz
2004-02-04 Robert Dewar <dewar@gnat.com>
* 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb, ali.ads, gprcmd.adb: Minor reformatting * bindgen.adb: Output restrictions string for new style restrictions handling * impunit.adb: Add s-rident.ads (System.Rident) and s-restri (System.Restrictions) * lib-writ.adb: Fix bug in writing restrictions string (last few entries wrong) * s-restri.ads, s-restri.adb: Change name Restrictions to Run_Time_Restrictions to avoid conflict with package name. Add circuit to read and acquire run time restrictions. 2004-02-04 Jose Ruiz <ruiz@act-europe.fr> * restrict.ads, restrict.adb: Use the new restriction No_Task_Attributes_Package instead of the old No_Task_Attributes. * sem_prag.adb: No_Task_Attributes is a synonym of No_Task_Attributes_Package. * snames.ads, snames.adb: New entry for proper handling of No_Task_Attributes. * s-rident.ads: Adding restriction No_Task_Attributes_Package (AI-00249) that supersedes the GNAT specific restriction No_Task_Attributes. 2004-02-04 Ed Schonberg <schonberg@gnat.com> * sem_prag.adb: (Analyze_Pragma, case Warnings): In an inlined body, as in an instance body, an identifier may be wrapped in an unchecked conversion. 2004-02-04 Vincent Celier <celier@gnat.com> * lib-writ.ads: Comment update for the W lines * bld.adb: (Expression): An empty string list is static * fname-uf.adb: Minor comment update * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail * gnatbind.adb: Initialize Cumulative_Restrictions with the restrictions on the target. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77233 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/bindgen.adb')
-rw-r--r--gcc/ada/bindgen.adb75
1 files changed, 65 insertions, 10 deletions
diff --git a/gcc/ada/bindgen.adb b/gcc/ada/bindgen.adb
index 834186239e5..f9b6b819b0b 100644
--- a/gcc/ada/bindgen.adb
+++ b/gcc/ada/bindgen.adb
@@ -141,6 +141,16 @@ package body Bindgen is
procedure Gen_Output_File_C (Filename : String);
-- Generate output file (C code case)
+ procedure Gen_Restrictions_String_1;
+ -- Generate first restrictions string, which consists of the parameters
+ -- the first R line, as described in lib-writ.ads, with the restrictions
+ -- being those for the entire partition (from Cumulative_Restrictions).
+
+ procedure Gen_Restrictions_String_2;
+ -- Generate first restrictions string, which consists of the parameters
+ -- the second R line, as described in lib-writ.ads, with the restrictions
+ -- being those for the entire partition (from Cumulative_Restrictions).
+
procedure Gen_Versions_Ada;
-- Output series of definitions for unit versions (Ada code case)
@@ -358,13 +368,15 @@ package body Bindgen is
Set_String (" Restrictions : constant String :=");
Write_Statement_Buffer;
- Set_String (" """);
- for J in All_Restrictions loop
- null;
- end loop;
+ Set_String (" """);
+ Gen_Restrictions_String_1;
+ Set_String (""" &");
+ Write_Statement_Buffer;
- Set_String (""";");
+ Set_String (" """);
+ Gen_Restrictions_String_2;
+ Set_String (""" & ASCII.Nul;");
Write_Statement_Buffer;
WBI ("");
@@ -606,11 +618,8 @@ package body Bindgen is
-- Generate definition for restrictions string
Set_String (" const char *restrictions = """);
-
- for J in All_Restrictions loop
- null;
- end loop;
-
+ Gen_Restrictions_String_1;
+ Gen_Restrictions_String_2;
Set_String (""";");
Write_Statement_Buffer;
@@ -2453,6 +2462,52 @@ package body Bindgen is
Close_Binder_Output;
end Gen_Output_File_C;
+ -------------------------------
+ -- Gen_Restrictions_String_1 --
+ -------------------------------
+
+ procedure Gen_Restrictions_String_1 is
+ begin
+ for R in All_Boolean_Restrictions loop
+ if Cumulative_Restrictions.Set (R) then
+ Set_Char ('r');
+ elsif Cumulative_Restrictions.Violated (R) then
+ Set_Char ('v');
+ else
+ Set_Char ('n');
+ end if;
+ end loop;
+ end Gen_Restrictions_String_1;
+
+ -------------------------------
+ -- Gen_Restrictions_String_2 --
+ -------------------------------
+
+ procedure Gen_Restrictions_String_2 is
+ begin
+ for RP in All_Parameter_Restrictions loop
+ if Cumulative_Restrictions.Set (RP) then
+ Set_Char ('r');
+ Set_Int (Int (Cumulative_Restrictions.Value (RP)));
+ else
+ Set_Char ('n');
+ end if;
+
+ if not Cumulative_Restrictions.Violated (RP)
+ or else RP not in Checked_Parameter_Restrictions
+ then
+ Set_Char ('n');
+ else
+ Set_Char ('v');
+ Set_Int (Int (Cumulative_Restrictions.Count (RP)));
+
+ if Cumulative_Restrictions.Unknown (RP) then
+ Set_Char ('+');
+ end if;
+ end if;
+ end loop;
+ end Gen_Restrictions_String_2;
+
----------------------
-- Gen_Versions_Ada --
----------------------