diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-03 10:22:52 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-03 10:22:52 +0200 |
commit | 56e941863ba558a7a3426c686d6e5c08eefca90e (patch) | |
tree | eeabf64a1a78064507c612cff6b0b9e20b698374 /gcc/ada/lib-xref.ads | |
parent | 4317e442b4eced893bf40c552deb37c303d81102 (diff) | |
download | gcc-56e941863ba558a7a3426c686d6e5c08eefca90e.zip gcc-56e941863ba558a7a3426c686d6e5c08eefca90e.tar.gz gcc-56e941863ba558a7a3426c686d6e5c08eefca90e.tar.bz2 |
[multiple changes]
2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
* gnat_ugn.texi: Document -Wstack-usage.
* gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.
2011-08-03 Thomas Quinot <quinot@adacore.com>
* sem_prag.adb Issue an error (not a warning) when a C++ type does not
have keyword LIMITED.
2011-08-03 Yannick Moy <moy@adacore.com>
* alfa.adb, alfa.ads, alfa_test.adb: New files.
* ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
(Scan_ALI): do not issue a fatal error if parsing known lines after Xref
section (does not happen in compiler, only if code directly calls
Scan_ALI).
* get_alfa.adb, get_alfa.ads: New files.
* lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
needed.
* lib-xref-alfa.adb: New file.
* lib-xref.adb, lib-xref.ads
(Xref_Entry): redefine information needed in cross-references for ALFA.
Push ALFA treatments in separated local package.
(Enclosing_Subpragram_Or_Package): treat specially subprogram
identifiers. Return entity of package body instead of spec. Return
Empty for a scope with no location.
(Generate_Reference): adapt to new components for ALFA information.
Remove the need for D references on definitions.
(Is_Local_Reference): moved to ALFA local package
(Output_References): extract subfunction as Extract_Source_Name
(Output_Local_References): remove procedure, replaced by filtering of
cross-references in package ALFA and printing in Put_ALFA.
(Write_Entity_Name): remove procedure
* lib.adb, lib.ads (Extract_Source_Name): extract here function to
print exact name of entity as it appears in source file
(Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
* put_alfa.adb, put_alfa.ads: New files.
* xref_lib.adb (Search_Xref): protect read of cross-references against
reading other sections of the ALI file, in gnatxref
(Search): protect read of cross-references against reading other
sections of the ALI file, in gnatfind.
* gcc-interface/Make-lang.in: Update dependencies.
2011-08-03 Thomas Quinot <quinot@adacore.com>
* sem_ch3.adb: Minor reformatting.
2011-08-03 Jose Ruiz <ruiz@adacore.com>
* s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
raising an exception.
2011-08-03 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
type, always use 1 as the lower bound or string, even if lower bound of
context is not static, to handle properly null strings in a non-static
context.
2011-08-03 Bob Duff <duff@adacore.com>
* sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
always legal on the right-hand side of an assignment statement; there
is always an applicable index constraint in this case. Therefore, the
check for Pkind = N_Assignment_Statement is now unconditional -- it
doesn't depend on whether Is_Constrained (Typ).
From-SVN: r177239
Diffstat (limited to 'gcc/ada/lib-xref.ads')
-rw-r--r-- | gcc/ada/lib-xref.ads | 156 |
1 files changed, 24 insertions, 132 deletions
diff --git a/gcc/ada/lib-xref.ads b/gcc/ada/lib-xref.ads index 829e8723..c5aa20f 100644 --- a/gcc/ada/lib-xref.ads +++ b/gcc/ada/lib-xref.ads @@ -26,7 +26,9 @@ -- This package contains for collecting and outputting cross-reference -- information. -with Einfo; use Einfo; +with Einfo; use Einfo; +with Lib.Util; use Lib.Util; +with Put_ALFA; package Lib.Xref is @@ -564,134 +566,6 @@ package Lib.Xref is -- y abstract function entry or entry family -- z generic formal parameter (unused) - ------------------------------------------------------------- - -- Format of Local Cross-Reference Information in ALI File -- - ------------------------------------------------------------- - - -- Local cross-reference sections follow the cross-reference section in an - -- ALI file, so that they need not be read by gnatbind, gnatmake etc. - - -- A local cross-reference section has a header of the form - - -- S line type col entity - - -- These precisely define a subprogram or package, with the same - -- components as described for cross-reference sections. - - -- These sections are grouped in chapters for each unit introduced by - - -- F dependency-number filename - - -- Each section groups a number of cross-reference sub-sections introduced - -- by - - -- X dependency-number filename - - -- Inside each cross-reference sub-section, there are a number of - -- references like - - -- line type col entity ref ref ... - - ----------------------------------- - -- Local-Reference Entity Filter -- - ----------------------------------- - - Lref_Entity_Status : array (Entity_Kind) of Boolean := - (E_Void => False, - E_Variable => True, - E_Component => False, - E_Constant => True, - E_Discriminant => False, - - E_Loop_Parameter => True, - E_In_Parameter => True, - E_Out_Parameter => True, - E_In_Out_Parameter => True, - E_Generic_In_Out_Parameter => False, - - E_Generic_In_Parameter => False, - E_Named_Integer => False, - E_Named_Real => False, - E_Enumeration_Type => False, - E_Enumeration_Subtype => False, - - E_Signed_Integer_Type => False, - E_Signed_Integer_Subtype => False, - E_Modular_Integer_Type => False, - E_Modular_Integer_Subtype => False, - E_Ordinary_Fixed_Point_Type => False, - - E_Ordinary_Fixed_Point_Subtype => False, - E_Decimal_Fixed_Point_Type => False, - E_Decimal_Fixed_Point_Subtype => False, - E_Floating_Point_Type => False, - E_Floating_Point_Subtype => False, - - E_Access_Type => False, - E_Access_Subtype => False, - E_Access_Attribute_Type => False, - E_Allocator_Type => False, - E_General_Access_Type => False, - - E_Access_Subprogram_Type => False, - E_Access_Protected_Subprogram_Type => False, - E_Anonymous_Access_Subprogram_Type => False, - E_Anonymous_Access_Protected_Subprogram_Type => False, - E_Anonymous_Access_Type => False, - - E_Array_Type => False, - E_Array_Subtype => False, - E_String_Type => False, - E_String_Subtype => False, - E_String_Literal_Subtype => False, - - E_Class_Wide_Type => False, - E_Class_Wide_Subtype => False, - E_Record_Type => False, - E_Record_Subtype => False, - E_Record_Type_With_Private => False, - - E_Record_Subtype_With_Private => False, - E_Private_Type => False, - E_Private_Subtype => False, - E_Limited_Private_Type => False, - E_Limited_Private_Subtype => False, - - E_Incomplete_Type => False, - E_Incomplete_Subtype => False, - E_Task_Type => False, - E_Task_Subtype => False, - E_Protected_Type => False, - - E_Protected_Subtype => False, - E_Exception_Type => False, - E_Subprogram_Type => False, - E_Enumeration_Literal => False, - E_Function => True, - - E_Operator => True, - E_Procedure => True, - E_Entry => False, - E_Entry_Family => False, - E_Block => False, - - E_Entry_Index_Parameter => False, - E_Exception => False, - E_Generic_Function => False, - E_Generic_Package => False, - E_Generic_Procedure => False, - - E_Label => False, - E_Loop => False, - E_Return_Statement => False, - E_Package => False, - - E_Package_Body => False, - E_Protected_Object => False, - E_Protected_Body => False, - E_Task_Body => False, - E_Subprogram_Body => False); - -------------------------------------- -- Handling of Imported Subprograms -- -------------------------------------- @@ -708,6 +582,27 @@ package Lib.Xref is -- Import at line 4, that its body is in C, and that the link name as given -- in the pragma is "there". + ---------------------- + -- ALFA Information -- + ---------------------- + + -- This package defines procedures for collecting ALFA information and + -- printing in ALI files. + + package ALFA is + + procedure Collect_ALFA (Sdep_Table : Unit_Ref_Table; Num_Sdep : Nat); + -- Collect ALFA information from library units (for files and scopes) + -- and from cross-references. Fill in the tables in library package + -- called ALFA. + + procedure Output_ALFA is new Put_ALFA; + -- Output ALFA information to the ALI files, based on the information + -- collected in the tables in library package called ALFA, and using + -- routines in Lib.Util. + + end ALFA; + ----------------- -- Subprograms -- ----------------- @@ -790,9 +685,6 @@ package Lib.Xref is procedure Output_References; -- Output references to the current ali file - procedure Output_Local_References; - -- Output references in each subprogram of the current ali file - procedure Initialize; -- Initialize internal tables |