aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorHristian Kirtchev <kirtchev@adacore.com>2007-12-13 11:32:34 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2007-12-13 11:32:34 +0100
commit8a4444e804f8c9a55a12ae2b98e6394a6a4d8ba1 (patch)
tree1d0b66a98fc5e743ba8b02abb499058ea5d49692 /gcc/ada
parenta1980be8313c131ac0f97966e2574c88296a7669 (diff)
downloadgcc-8a4444e804f8c9a55a12ae2b98e6394a6a4d8ba1.zip
gcc-8a4444e804f8c9a55a12ae2b98e6394a6a4d8ba1.tar.gz
gcc-8a4444e804f8c9a55a12ae2b98e6394a6a4d8ba1.tar.bz2
sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check whether formal E is an entity which may have parameters.
2007-12-06 Hristian Kirtchev <kirtchev@adacore.com> * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check whether formal E is an entity which may have parameters. From-SVN: r130858
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/sem_type.adb20
1 files changed, 12 insertions, 8 deletions
diff --git a/gcc/ada/sem_type.adb b/gcc/ada/sem_type.adb
index 4612ad3..c5ae359 100644
--- a/gcc/ada/sem_type.adb
+++ b/gcc/ada/sem_type.adb
@@ -424,11 +424,11 @@ package body Sem_Type is
and then Present (Abstract_Interface_Alias (E))
then
-- Ada 2005 (AI-251): If this primitive operation corresponds with
- -- an inmediate ancestor interface there is no need to add it to the
- -- list of interpretations; the corresponding aliased primitive is
+ -- an immediate ancestor interface there is no need to add it to the
+ -- list of interpretations. The corresponding aliased primitive is
-- also in this list of primitive operations and will be used instead
- -- because otherwise we have a dummy between the two subprograms that
- -- are in fact the same.
+ -- because otherwise we have a dummy ambiguity between the two
+ -- subprograms which are in fact the same.
if not Is_Ancestor
(Find_Dispatching_Type (Abstract_Interface_Alias (E)),
@@ -505,8 +505,8 @@ package body Sem_Type is
end;
else
- -- Overloaded prefix in indexed or selected component,
- -- or call whose name is an expression or another call.
+ -- Overloaded prefix in indexed or selected component, or call
+ -- whose name is an expression or another call.
Add_Entry (Etype (N), Etype (N));
end if;
@@ -530,6 +530,7 @@ package body Sem_Type is
Write_Entity_Info (All_Interp.Table (J). Nam, " ");
else
Write_Str ("No Interp");
+ Write_Eol;
end if;
Write_Str ("=================");
@@ -641,7 +642,7 @@ package body Sem_Type is
Add_One_Interp (N, H, Etype (H));
if Debug_Flag_E then
- Write_Str ("Add overloaded Interpretation ");
+ Write_Str ("Add overloaded interpretation ");
Write_Int (Int (H));
Write_Eol;
end if;
@@ -1981,7 +1982,10 @@ package body Sem_Type is
Form_Parm : Node_Id;
begin
- if Is_Overloaded (N) then
+ -- Why is check on E needed below ???
+ -- In any case this para needs comments ???
+
+ if Is_Overloaded (N) and then Is_Overloadable (E) then
Act_Parm := First_Actual (N);
Form_Parm := First_Formal (E);
while Present (Act_Parm)