diff options
author | Justin Squirek <squirek@adacore.com> | 2019-01-08 09:52:32 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2019-01-08 09:52:32 +0000 |
commit | 713125282e264e5203f725ec969468d26cc966a1 (patch) | |
tree | 900b3f8f441df990d782b536fb2a8ed92c0522ff /gcc/ada/lib-writ.adb | |
parent | 30fa2068a3d4317b5b2282eb2e37e98aedfcbf4e (diff) | |
download | gcc-713125282e264e5203f725ec969468d26cc966a1.zip gcc-713125282e264e5203f725ec969468d26cc966a1.tar.gz gcc-713125282e264e5203f725ec969468d26cc966a1.tar.bz2 |
[Ada] Revert recent changes in the generation of deps in ali files
Following the discovery of regressions in GPRbuild, this reverts both
r263100 and r264608:
2019-01-08 Justin Squirek <squirek@adacore.com>
Revert:
2018-07-31 Justin Squirek <squirek@adacore.com>
gcc/ada/
* lib-writ.adb (Write_With_Lines): Modfiy the generation
of dependencies within ali files so that source unit
bodies are properly listed even if said bodies are
missing. Perform legacy behavior in GNATprove mode.
* lib-writ.ads: Modify documentation to reflect current
behavior.
and:
2018-09-26 Justin Squirek <squirek@adacore.com>
gcc/ada/
* lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
documentation and an extra conditional check for RCI
units so that generated ali files will list the spec
only instead of a body when a body is not found.
From-SVN: r267680
Diffstat (limited to 'gcc/ada/lib-writ.adb')
-rw-r--r-- | gcc/ada/lib-writ.adb | 43 |
1 files changed, 9 insertions, 34 deletions
diff --git a/gcc/ada/lib-writ.adb b/gcc/ada/lib-writ.adb index ce35c9e..759f847 100644 --- a/gcc/ada/lib-writ.adb +++ b/gcc/ada/lib-writ.adb @@ -953,42 +953,17 @@ package body Lib.Writ is Write_Info_Tab (25); if Is_Spec_Name (Uname) then + Body_Fname := + Get_File_Name + (Uname => Get_Body_Name (Uname), + Subunit => False, + May_Fail => True); - -- In GNATprove mode we must write the spec of a unit which - -- requires a body if that body is not found. This will - -- allow partial analysis on incomplete sources. Also, in - -- the case of a unit that is a remote call interface, the - -- bodies of packages may not exist but still may form a - -- valid program - so we handle that here as well. - - if GNATprove_Mode - or else Is_Remote_Call_Interface (Cunit_Entity (Unum)) - then - Body_Fname := - Get_File_Name - (Uname => Get_Body_Name (Uname), - Subunit => False, - May_Fail => True); - - Body_Index := Get_Unit_Index (Get_Body_Name (Uname)); - - if Body_Fname = No_File then - Body_Fname := Get_File_Name (Uname, Subunit => False); - Body_Index := Get_Unit_Index (Uname); - end if; - - -- In the normal path we don't allow failure in fetching the - -- name of the desired body unit so that it may be properly - -- referenced in the output ali - even if it is missing. - - else - Body_Fname := - Get_File_Name - (Uname => Get_Body_Name (Uname), - Subunit => False, - May_Fail => False); + Body_Index := Get_Unit_Index (Get_Body_Name (Uname)); - Body_Index := Get_Unit_Index (Get_Body_Name (Uname)); + if Body_Fname = No_File then + Body_Fname := Get_File_Name (Uname, Subunit => False); + Body_Index := Get_Unit_Index (Uname); end if; else Body_Fname := Get_File_Name (Uname, Subunit => False); |