aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorJustin Squirek <squirek@adacore.com>2019-01-08 09:52:32 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-01-08 09:52:32 +0000
commit713125282e264e5203f725ec969468d26cc966a1 (patch)
tree900b3f8f441df990d782b536fb2a8ed92c0522ff /gcc/ada
parent30fa2068a3d4317b5b2282eb2e37e98aedfcbf4e (diff)
downloadgcc-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')
-rw-r--r--gcc/ada/ChangeLog26
-rw-r--r--gcc/ada/lib-writ.adb43
-rw-r--r--gcc/ada/lib-writ.ads15
3 files changed, 42 insertions, 42 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 0341a2b..7995c20 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,29 @@
+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.
+
2019-01-04 Eric Botcazou <ebotcazou@adacore.com>
* gnatvsn.ads: Bump copyright year.
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);
diff --git a/gcc/ada/lib-writ.ads b/gcc/ada/lib-writ.ads
index 9c7c270..b8e92a3 100644
--- a/gcc/ada/lib-writ.ads
+++ b/gcc/ada/lib-writ.ads
@@ -629,14 +629,13 @@ package Lib.Writ is
-- by the current unit. One Z line is present for each unit that is
-- only implicitly withed by the current unit. The first parameter is
-- the unit name in internal format. The second parameter is the file
- -- name of the body unit on which the current compilation unit depends,
- -- except when in GNATprove mode or when the unit is a remote call
- -- interface. In these cases, when packages that require a body have
- -- no associated source file, the file name of the spec is used instead
- -- to allow partial analysis of incomplete sources. The third parameter
- -- is the file name of the library information file that contains the
- -- results of compiling this unit. The optional modifiers are used as
- -- follows:
+ -- name of the file that must be compiled to compile this unit. It is
+ -- usually the file for the body, except for packages which have no
+ -- body. For units that need a body, if the source file for the body
+ -- cannot be found, the file name of the spec is used instead. The
+ -- third parameter is the file name of the library information file
+ -- that contains the results of compiling this unit. The optional
+ -- modifiers are used as follows:
-- E pragma Elaborate applies to this unit