aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_cat.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/sem_cat.adb')
-rw-r--r--gcc/ada/sem_cat.adb15
1 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ada/sem_cat.adb b/gcc/ada/sem_cat.adb
index 44d5f59..a17521c 100644
--- a/gcc/ada/sem_cat.adb
+++ b/gcc/ada/sem_cat.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2004, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -1529,13 +1529,22 @@ package body Sem_Cat is
if Is_Remote_Access_To_Subprogram_Type (E)
and then not Is_Remote_Access_To_Subprogram_Type (S)
then
- Error_Msg_N ("incorrect conversion of remote operand", N);
+ Error_Msg_N
+ ("incorrect conversion of remote operand to local type", N);
+ return;
+
+ elsif not Is_Remote_Access_To_Subprogram_Type (E)
+ and then Is_Remote_Access_To_Subprogram_Type (S)
+ then
+ Error_Msg_N
+ ("incorrect conversion of local operand to remote type", N);
return;
elsif Is_Remote_Access_To_Class_Wide_Type (E)
and then not Is_Remote_Access_To_Class_Wide_Type (S)
then
- Error_Msg_N ("incorrect conversion of remote operand", N);
+ Error_Msg_N
+ ("incorrect conversion of remote operand to local type", N);
return;
end if;