From: Ronan Desplanques <[email protected]>
When a file included through External_Initialization has been modified,
the unit including it must be recompiled. This patch adds the
generation of dependency lines to the handling of the
External_Initialization aspect, to signal that fact to gnatmake and
other tools that invoke GNAT.
gcc/ada/ChangeLog:
* lib-writ.ads (Add_Preprocessing_Dependency): Update
documentation comment.
* sem_ch3.adb (Apply_External_Initialization): Add call to
Add_Preprocessing_Dependency.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/lib-writ.ads | 3 ++-
gcc/ada/sem_ch3.adb | 3 +++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/gcc/ada/lib-writ.ads b/gcc/ada/lib-writ.ads
index fd62ef9363c..38206179dfc 100644
--- a/gcc/ada/lib-writ.ads
+++ b/gcc/ada/lib-writ.ads
@@ -1064,6 +1064,7 @@ package Lib.Writ is
procedure Add_Preprocessing_Dependency (S : Source_File_Index);
-- Indicate that there is a dependency to be added on a preprocessing data
- -- file or on a preprocessing definition file.
+ -- file, on a preprocessing definition file or on a file included through
+ -- External_Initialization.
end Lib.Writ;
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index 2a48882d83c..ea0a97bd39f 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -47,6 +47,7 @@ with Ghost; use Ghost;
with Itypes; use Itypes;
with Layout; use Layout;
with Lib; use Lib;
+with Lib.Writ;
with Lib.Xref; use Lib.Xref;
with Mutably_Tagged; use Mutably_Tagged;
with Namet; use Namet;
@@ -3947,6 +3948,8 @@ package body Sem_Ch3 is
return;
end if;
+ Lib.Writ.Add_Preprocessing_Dependency (Source_File_I);
+
Expr :=
Make_External_Initializer
(Sloc (Specification), Source_File_I);
--
2.43.0