sem_util.ads (Unique_Defining_Entity): Document the result for tasks and entries.
2015-10-23 Arnaud Charlet <charlet@adacore.com> * sem_util.ads (Unique_Defining_Entity): Document the result for tasks and entries. * sem_util.adb (Unique_Entity): Return declaration entity for task and entry bodies From-SVN: r229222
This commit is contained in:
parent
67dbe5829e
commit
2e88509395
3 changed files with 35 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||||
|
||||
* sem_util.ads (Unique_Defining_Entity): Document the result
|
||||
for tasks and entries.
|
||||
* sem_util.adb (Unique_Entity): Return declaration entity for task and
|
||||
entry bodies
|
||||
|
||||
2015-10-22 Mikhail Maltsev <maltsevm@gmail.com>
|
||||
|
||||
* gcc-interface/decl.c (gnat_to_gnu_entity): Use gcc_checking_assert.
|
||||
|
|
|
@ -19082,6 +19082,32 @@ package body Sem_Util is
|
|||
U := Spec_Entity (E);
|
||||
end if;
|
||||
|
||||
when E_Task_Body =>
|
||||
P := Parent (E);
|
||||
U := Corresponding_Spec (P);
|
||||
|
||||
when E_Entry =>
|
||||
if Nkind (Parent (E)) = N_Entry_Body then
|
||||
declare
|
||||
Decl : Entity_Id := First_Entity (Scope (E));
|
||||
begin
|
||||
-- Traverse the entity list of the protected object
|
||||
-- and locate an entry declaration with a matching
|
||||
-- Corresponding_Body.
|
||||
|
||||
while Present (Decl) loop
|
||||
if Ekind (Decl) = E_Entry
|
||||
and then Corresponding_Body (Parent (Decl)) = E
|
||||
then
|
||||
U := Decl;
|
||||
exit;
|
||||
end if;
|
||||
Next_Entity (Decl);
|
||||
end loop;
|
||||
pragma Assert (Present (Decl));
|
||||
end;
|
||||
end if;
|
||||
|
||||
when others =>
|
||||
null;
|
||||
end case;
|
||||
|
|
|
@ -2105,6 +2105,8 @@ package Sem_Util is
|
|||
-- views of the same entity have the same unique defining entity:
|
||||
-- * package spec and body;
|
||||
-- * subprogram declaration, subprogram stub and subprogram body;
|
||||
-- * entry declaration and entry body;
|
||||
-- * task declaration, task body stub and task body;
|
||||
-- * private view and full view of a type;
|
||||
-- * private view and full view of a deferred constant.
|
||||
-- In other cases, return the defining entity for N.
|
||||
|
|
Loading…
Add table
Reference in a new issue