aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorHristian Kirtchev <kirtchev@adacore.com>2017-10-14 17:17:41 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2017-10-14 17:17:41 +0000
commit0fcd7270b6fb2fbb5ec72671374b17d3db531151 (patch)
treee6e189f31ec835d26709dbdbb664de99cc3a592a /gcc/ada
parent92b751fdc698c7b2040f986aaa125e4163003a2d (diff)
downloadgcc-0fcd7270b6fb2fbb5ec72671374b17d3db531151.zip
gcc-0fcd7270b6fb2fbb5ec72671374b17d3db531151.tar.gz
gcc-0fcd7270b6fb2fbb5ec72671374b17d3db531151.tar.bz2
sem_elab.adb (In_Preelaborated_Context): A generic package subject to Remote_Call_Interface is not a suitable...
gcc/ada/ 2017-10-14 Hristian Kirtchev <kirtchev@adacore.com> * sem_elab.adb (In_Preelaborated_Context): A generic package subject to Remote_Call_Interface is not a suitable preelaboratd context when the call appears in the package body. gcc/testsuite/ 2017-10-14 Hristian Kirtchev <kirtchev@adacore.com> * gnat.dg/remote_call_iface.ads, gnat.dg/remote_call_iface.adb: New testcase. From-SVN: r253758
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/sem_elab.adb2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index d0d17ba..7708c58 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2017-10-14 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_elab.adb (In_Preelaborated_Context): A generic package subject to
+ Remote_Call_Interface is not a suitable preelaboratd context when the
+ call appears in the package body.
+
2017-10-14 Eric Botcazou <ebotcazou@adacore.com>
* layout.ads (Set_Elem_Alignment): Add Align parameter defaulted to 0.
diff --git a/gcc/ada/sem_elab.adb b/gcc/ada/sem_elab.adb
index 7f5a3d6..7f9ce08 100644
--- a/gcc/ada/sem_elab.adb
+++ b/gcc/ada/sem_elab.adb
@@ -1808,7 +1808,7 @@ package body Sem_Elab is
-- be on another machine.
if Ekind (Body_Id) = E_Package_Body
- and then Ekind (Spec_Id) = E_Package
+ and then Ekind_In (Spec_Id, E_Generic_Package, E_Package)
and then (Is_Remote_Call_Interface (Spec_Id)
or else Is_Remote_Types (Spec_Id))
then