summaryrefslogtreecommitdiff
path: root/gcc/ada/sem_disp.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-15 09:43:23 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-15 09:43:23 +0000
commit9c48514ace72dd1d813a568b34b2eabe17d6f98f (patch)
treec9786568eb60998e3bee26aa25ade22c4bfd8302 /gcc/ada/sem_disp.ads
parent99b357350076912bcfaaacce73c365eb5e494ea2 (diff)
downloadgcc-9c48514ace72dd1d813a568b34b2eabe17d6f98f.tar.gz
2006-02-13 Javier Miranda <miranda@adacore.com>
Gary Dismukes <dismukes@adacore.com> Robert Dewar <dewar@adacore.com> * restrict.ads (No_Dispatching_Calls): New GNAT restriction. * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of aliased entities to look for the overriden abstract interface subprogram. (Is_Interface_Subprogram): Complete documentation. (Check_Dispatching_Operation): Do not generate code to register the operation in the dispatch table if the source is compiled with restriction No_Dispatching_Calls. (Override_Dispatching_Operation): Check for illegal attempt to override No_Return procedure with procedure that is not No_Return (Check_Dispatching_Call): Suppress the check for an abstract operation when the original node of an actual is a tag-indeterminate attribute call, since the attribute, which must be 'Input, can never be abstract. (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a call to the Input attribute (even when rewritten). (Propagate_Tag): Augment comment to indicate the possibility of a call to an Input attribute. * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow calling it from Exp_Ch3.Make_Controlling_Function_Wrappers. * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction. No_Wide_Characters is no longer partition-wide No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257) rather than GNAT git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111086 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sem_disp.ads')
-rw-r--r--gcc/ada/sem_disp.ads10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ada/sem_disp.ads b/gcc/ada/sem_disp.ads
index 906ad6de17d..1e9e18e318c 100644
--- a/gcc/ada/sem_disp.ads
+++ b/gcc/ada/sem_disp.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2002 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- --
@@ -80,6 +80,14 @@ package Sem_Disp is
-- on result, and all controlling operands are also indeterminate.
-- Such a function call may inherit a tag from an enclosing call.
+ procedure Override_Dispatching_Operation
+ (Tagged_Type : Entity_Id;
+ Prev_Op : Entity_Id;
+ New_Op : Entity_Id);
+ -- Replace an implicit dispatching operation with an explicit one.
+ -- Prev_Op is an inherited primitive operation which is overridden
+ -- by the explicit declaration of New_Op.
+
procedure Propagate_Tag (Control : Node_Id; Actual : Node_Id);
-- If a function call is tag-indeterminate, its controlling argument is
-- found in the context; either an enclosing call, or the left-hand side