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/xref_lib.adb | |
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/xref_lib.adb')
-rw-r--r-- | gcc/ada/xref_lib.adb | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/gcc/ada/xref_lib.adb b/gcc/ada/xref_lib.adb index 1a0d2c4..9db1643 100644 --- a/gcc/ada/xref_lib.adb +++ b/gcc/ada/xref_lib.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2010, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2011, 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- -- @@ -1764,11 +1764,24 @@ package body Xref_Lib is then begin Open (Ali_Name.all, ALIfile); - while ALIfile.Buffer (ALIfile.Current_Line) /= EOF loop + + -- The cross-reference section in the ALI file may be followed + -- by other sections, which can be identified by the starting + -- character of every line, which should neither be 'X' nor a + -- figure in '1' .. '9'. + + -- The loop tests below also take into account the end-of-file + -- possibility. + + while ALIfile.Buffer (ALIfile.Current_Line) = 'X' loop Parse_X_Filename (ALIfile); - Parse_Identifier_Info - (Pattern, ALIfile, Local_Symbols, - Der_Info, Type_Tree, Wide_Search, Labels_As_Ref => True); + + while ALIfile.Buffer (ALIfile.Current_Line) in '1' .. '9' + loop + Parse_Identifier_Info + (Pattern, ALIfile, Local_Symbols, Der_Info, Type_Tree, + Wide_Search, Labels_As_Ref => True); + end loop; end loop; exception @@ -1818,11 +1831,23 @@ package body Xref_Lib is if Read_Only or else Is_Writable_File (F) then Open (F, ALIfile, True); - while ALIfile.Buffer (ALIfile.Current_Line) /= EOF loop + -- The cross-reference section in the ALI file may be followed + -- by other sections, which can be identified by the starting + -- character of every line, which should neither be 'X' nor a + -- figure in '1' .. '9'. + + -- The loop tests below also take into account the end-of-file + -- possibility. + + while ALIfile.Buffer (ALIfile.Current_Line) = 'X' loop Parse_X_Filename (ALIfile); - Parse_Identifier_Info - (Null_Pattern, ALIfile, Local_Symbols, Der_Info, - Labels_As_Ref => False); + + while ALIfile.Buffer (ALIfile.Current_Line) in '1' .. '9' + loop + Parse_Identifier_Info + (Null_Pattern, ALIfile, Local_Symbols, Der_Info, + Labels_As_Ref => False); + end loop; end loop; end if; |