diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-29 11:00:17 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-29 11:00:17 +0000 |
commit | f19e29b647ae848e03e17d1723e9a130aa5318ba (patch) | |
tree | 711fe1a3a695d1f207635390f96d916108d930f1 /gcc/ada/ali.adb | |
parent | 6e3a4232952006335b80cbd867af58f00c293cc0 (diff) | |
download | gcc-f19e29b647ae848e03e17d1723e9a130aa5318ba.tar.gz |
2012-10-29 Tristan Gingold <gingold@adacore.com>
* exp_ch9.adb, s-tarest.ads, exp_ch3.adb: Update comments.
2012-10-29 Yannick Moy <moy@adacore.com>
* gnat_rm.texi: Minor documentation addition.
2012-10-29 Emmanuel Briot <briot@adacore.com>
* xr_tabls.adb, xr_tabls.ads (Add_Declaration, Add_Reference): No
longer assume that a parameter declaration is seen after the subprogram
that uses it.
2012-10-29 Tristan Gingold <gingold@adacore.com>
* lib-writ.adb (Write_ALI): Emit partition elaboration policy
in P line.
* lib-writ.ads: Document partition elaboration policy indication.
* sem_prag.adb (Check_Arg_Is_Partition_Elaboration_Policy): New
procedure.
(Analyze_Pragma): Handle Partition_Elaboration_Policy.
(Sig_Flags): Add flag for Pragma_Partition_Elaboration_Policy
* ali.adb (Initialize_ALI): Init Partition_Elaboration_Policy_Specified.
(Scan_ALI): Read Ex indications.
* ali.ads: ALIs_Record: Add Partition_Elaboration_Policy.
* par-prag.adb (Prag): Add Partition_Elaboration_Policy.
* snames.adb-tmpl (Is_Partition_Elaboration_Policy_Name): New function.
* opt.ads (Partition_Elaboration_Policy): Declare.
(Partition_Elaboration_Policy_Sloc): Declare.
* bcheck.adb (Check_Consistent_Partition_Elaboration_Policy):
New procedure. (Check_Configuration_Consistency): Check partition
elaboration policy consistency.
* snames.ads-tmpl (Name_Partition_Elaboration_Policy): New name.
(First_Partition_Elaboration_Policy_Name, Name_Concurrent,
Name_Sequential, Last_Partition_Elaboration_Policy_Name): Likewise.
(Pragma_Partition_Elaboration_Policy): New literal.
(Is_Partition_Elaboration_Policy_Name): New function.
2012-10-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Is_Public_Subprogram_For): Handle properly
expression functions, which are rewritten as subprogram
declarations, when generating invariants for its return value
and in-out parameters.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192928 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/ali.adb')
-rw-r--r-- | gcc/ada/ali.adb | 91 |
1 files changed, 50 insertions, 41 deletions
diff --git a/gcc/ada/ali.adb b/gcc/ada/ali.adb index 86ad184de2b..a85fa4bec2f 100644 --- a/gcc/ada/ali.adb +++ b/gcc/ada/ali.adb @@ -107,17 +107,18 @@ package body ALI is -- Initialize global variables recording cumulative options in all -- ALI files that are read for a given processing run in gnatbind. - Dynamic_Elaboration_Checks_Specified := False; - Float_Format_Specified := ' '; - Locking_Policy_Specified := ' '; - No_Normalize_Scalars_Specified := False; - No_Object_Specified := False; - Normalize_Scalars_Specified := False; - Queuing_Policy_Specified := ' '; - Static_Elaboration_Model_Used := False; - Task_Dispatching_Policy_Specified := ' '; - Unreserve_All_Interrupts_Specified := False; - Zero_Cost_Exceptions_Specified := False; + Dynamic_Elaboration_Checks_Specified := False; + Float_Format_Specified := ' '; + Locking_Policy_Specified := ' '; + No_Normalize_Scalars_Specified := False; + No_Object_Specified := False; + Normalize_Scalars_Specified := False; + Partition_Elaboration_Policy_Specified := ' '; + Queuing_Policy_Specified := ' '; + Static_Elaboration_Model_Used := False; + Task_Dispatching_Policy_Specified := ' '; + Unreserve_All_Interrupts_Specified := False; + Zero_Cost_Exceptions_Specified := False; end Initialize_ALI; -------------- @@ -813,36 +814,37 @@ package body ALI is Set_Name_Table_Info (F, Int (Id)); ALIs.Table (Id) := ( - Afile => F, - Compile_Errors => False, - First_Interrupt_State => Interrupt_States.Last + 1, - First_Sdep => No_Sdep_Id, - First_Specific_Dispatching => Specific_Dispatching.Last + 1, - First_Unit => No_Unit_Id, - Float_Format => 'I', - Last_Interrupt_State => Interrupt_States.Last, - Last_Sdep => No_Sdep_Id, - Last_Specific_Dispatching => Specific_Dispatching.Last, - Last_Unit => No_Unit_Id, - Locking_Policy => ' ', - Main_Priority => -1, - Main_CPU => -1, - Main_Program => None, - No_Object => False, - Normalize_Scalars => False, - Ofile_Full_Name => Full_Object_File_Name, - Queuing_Policy => ' ', - Restrictions => No_Restrictions, - SAL_Interface => False, - Sfile => No_File, - Task_Dispatching_Policy => ' ', - Time_Slice_Value => -1, - Allocator_In_Body => False, - WC_Encoding => 'b', - Unit_Exception_Table => False, - Ver => (others => ' '), - Ver_Len => 0, - Zero_Cost_Exceptions => False); + Afile => F, + Compile_Errors => False, + First_Interrupt_State => Interrupt_States.Last + 1, + First_Sdep => No_Sdep_Id, + First_Specific_Dispatching => Specific_Dispatching.Last + 1, + First_Unit => No_Unit_Id, + Float_Format => 'I', + Last_Interrupt_State => Interrupt_States.Last, + Last_Sdep => No_Sdep_Id, + Last_Specific_Dispatching => Specific_Dispatching.Last, + Last_Unit => No_Unit_Id, + Locking_Policy => ' ', + Main_Priority => -1, + Main_CPU => -1, + Main_Program => None, + No_Object => False, + Normalize_Scalars => False, + Ofile_Full_Name => Full_Object_File_Name, + Partition_Elaboration_Policy => ' ', + Queuing_Policy => ' ', + Restrictions => No_Restrictions, + SAL_Interface => False, + Sfile => No_File, + Task_Dispatching_Policy => ' ', + Time_Slice_Value => -1, + Allocator_In_Body => False, + WC_Encoding => 'b', + Unit_Exception_Table => False, + Ver => (others => ' '), + Ver_Len => 0, + Zero_Cost_Exceptions => False); -- Now we acquire the input lines from the ALI file. Note that the -- convention in the following code is that as we enter each section, @@ -1027,6 +1029,13 @@ package body ALI is Checkc ('B'); Detect_Blocking := True; + -- Processing for Ex + + elsif C = 'E' then + Partition_Elaboration_Policy_Specified := Getc; + ALIs.Table (Id).Partition_Elaboration_Policy := + Partition_Elaboration_Policy_Specified; + -- Processing for FD/FG/FI elsif C = 'F' then |