[Ada] Refactor duplicated resolution of Count and Index attributes
Attribute Index, which was added to Ada 2022 by AI12-0143, is resolved just like attribute Count. However, code duplication rightly triggered a CodePeer warning. gcc/ada/ * sem_attr.adb (Resolve_Attribute): Refactor duplicated code for Count and Index attributes.
This commit is contained in:
parent
a521dc3799
commit
e0cd23986e
@ -12300,7 +12300,9 @@ package body Sem_Attr is
|
||||
-- if it is an element of an entry family, the index itself may
|
||||
-- have to be resolved because it can be a general expression.
|
||||
|
||||
when Attribute_Count =>
|
||||
when Attribute_Count
|
||||
| Attribute_Index
|
||||
=>
|
||||
if Nkind (P) = N_Indexed_Component
|
||||
and then Is_Entity_Name (Prefix (P))
|
||||
then
|
||||
@ -12338,19 +12340,7 @@ package body Sem_Attr is
|
||||
-- Index --
|
||||
-----------
|
||||
|
||||
when Attribute_Index =>
|
||||
if Nkind (P) = N_Indexed_Component
|
||||
and then Is_Entity_Name (Prefix (P))
|
||||
then
|
||||
declare
|
||||
Indx : constant Node_Id := First (Expressions (P));
|
||||
Fam : constant Entity_Id := Entity (Prefix (P));
|
||||
|
||||
begin
|
||||
Resolve (Indx, Entry_Index_Type (Fam));
|
||||
Apply_Scalar_Range_Check (Indx, Entry_Index_Type (Fam));
|
||||
end;
|
||||
end if;
|
||||
-- Processing is shared with Count
|
||||
|
||||
----------------
|
||||
-- Loop_Entry --
|
||||
|
Loading…
Reference in New Issue
Block a user