Ada Call and Callby Kinds

Kind Name
Entity Performing Reference
Entity Being Referenced
Ada Call
main
some_proc
Ada Callby
some_proc
main
Ada Call Indirect
main
some_proc
Ada Callby Indirect
some_proc
main
Ada Call Dispatch
other_proc
some_proc
Ada Callby Dispatch
some_proc
other_proc
Ada Call Dispatch Indirect
other_proc
some_proc
Ada Callby Dispatch Indirect
some_proc
other_proc
Ada Call Ptr
some_pack
some_proc
Ada Callby Ptr
some_proc
some_pack

Call and Callby reference kinds indicate an invocation of a subprogram or entry.

procedure main is 
begin 
   some_proc(5); 
end; 

Call Indirect and Callby Indirect indicate an invocation of a subprogram or entry made via a renaming declaration. A regular call relation is also created to the entity that is a rename.

package some_pack is 
   procedure some_proc; 
end; 
 
with some_pack; 
procedure main is 
   procedure my_proc renames some_pack.some_proc; 
begin 
   my_proc; 
end; 

Call Dispatch and Callby Dispatch indicate a dispatching call of a subprogram or entry.

package some_pack is 
   type some_type is tagged null record; 
   procedure some_proc(p : some_type); 
end; 
 
with some_pack; 
procedure other_proc(p : some_pack.some_type'class) is 
begin 
   some_pack.some_proc(p); 
end; 

Call Dispatch Indirect and Callby Dispatch Indirect indicate a dispatching invocation of a subprogram or entry made via a renaming declaration. A regular call dispatch relation is also created to the entity that is a rename.

Call Ptr and Callby Ptr indicate access to a subprogram has been taken so the subprogram may be called later via a subprogram access variable.

package some_pack is 
  type access_proc_type is access procedure; 
  procedure some_proc; 
  access_obj : access_proc_type := some_proc'access;   
                    // Ada Call Ptr 
end; 

Scientific Toolworks, Inc.
http://www.scitools.com