diff options
author | Hristian Kirtchev <kirtchev@adacore.com> | 2017-10-14 17:17:41 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2017-10-14 17:17:41 +0000 |
commit | 0fcd7270b6fb2fbb5ec72671374b17d3db531151 (patch) | |
tree | e6e189f31ec835d26709dbdbb664de99cc3a592a /gcc | |
parent | 92b751fdc698c7b2040f986aaa125e4163003a2d (diff) | |
download | gcc-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')
-rw-r--r-- | gcc/ada/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/sem_elab.adb | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/remote_call_iface.adb | 7 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/remote_call_iface.ads | 5 |
5 files changed, 24 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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c48f8a6..909ca73 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * gnat.dg/remote_call_iface.ads, gnat.dg/remote_call_iface.adb: New + testcase. + 2017-10-14 Jakub Jelinek <jakub@redhat.com> PR rtl-optimization/81423 diff --git a/gcc/testsuite/gnat.dg/remote_call_iface.adb b/gcc/testsuite/gnat.dg/remote_call_iface.adb new file mode 100644 index 0000000..6816ad9 --- /dev/null +++ b/gcc/testsuite/gnat.dg/remote_call_iface.adb @@ -0,0 +1,7 @@ +-- { dg-do compile } + +package body Remote_Call_Iface is + procedure Proc is begin null; end; +begin + Proc; +end Remote_Call_Iface; diff --git a/gcc/testsuite/gnat.dg/remote_call_iface.ads b/gcc/testsuite/gnat.dg/remote_call_iface.ads new file mode 100644 index 0000000..ce12fef --- /dev/null +++ b/gcc/testsuite/gnat.dg/remote_call_iface.ads @@ -0,0 +1,5 @@ +generic +package Remote_Call_Iface is + pragma Remote_Call_Interface; + procedure Proc; +end Remote_Call_Iface; |