diff options
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; |