diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-04 11:06:19 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-04 11:06:19 +0000 |
commit | 1147840a03d8b5bb79089f8c2a13c912ab02a19f (patch) | |
tree | eb723f684eca66cfc93f09df6fa537a3371b2f14 /gcc/ada/bindgen.adb | |
parent | dfabcc74d4cc132642d1c73f735b9b5893ea9f44 (diff) | |
download | gcc-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.adb | 75 |
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 -- ---------------------- |