[Ada] Ada 2020 AI12-0401 Renaming of qualified expression of variable
gcc/ada/ * sem_ch8.adb (Analyze_Object_Renaming): Check for AI12-0401.
This commit is contained in:
parent
8d87bb8f56
commit
678e19545e
@ -1038,6 +1038,22 @@ package body Sem_Ch8 is
|
|||||||
Mark_Ghost_Renaming (N, Entity (Nam));
|
Mark_Ghost_Renaming (N, Entity (Nam));
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
|
-- Check against AI12-0401 here before Resolve may rewrite Nam and
|
||||||
|
-- potentially generate spurious warnings.
|
||||||
|
|
||||||
|
if Nkind (Nam) = N_Qualified_Expression
|
||||||
|
and then Is_Variable (Expression (Nam))
|
||||||
|
and then not
|
||||||
|
(Subtypes_Statically_Match (T, Etype (Expression (Nam)))
|
||||||
|
or else
|
||||||
|
Subtypes_Statically_Match (Base_Type (T), Etype (Nam)))
|
||||||
|
then
|
||||||
|
Error_Msg_N
|
||||||
|
("subtype of renamed qualified expression does not " &
|
||||||
|
"statically match", N);
|
||||||
|
return;
|
||||||
|
end if;
|
||||||
|
|
||||||
Resolve (Nam, T);
|
Resolve (Nam, T);
|
||||||
|
|
||||||
-- If the renamed object is a function call of a limited type,
|
-- If the renamed object is a function call of a limited type,
|
||||||
|
Loading…
Reference in New Issue
Block a user