[Ada] Unnesting: improve handling of bounds for formal parameters
2018-06-11 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (Visit_Node): Check reference to formal parameter of current procedure, because the bounds of its type may be uplevel references. From-SVN: r261394
This commit is contained in:
parent
8c6fc01486
commit
b516a1a96b
@ -1,3 +1,9 @@
|
|||||||
|
2018-06-11 Ed Schonberg <schonberg@adacore.com>
|
||||||
|
|
||||||
|
* exp_unst.adb (Visit_Node): Check reference to formal parameter of
|
||||||
|
current procedure, because the bounds of its type may be uplevel
|
||||||
|
references.
|
||||||
|
|
||||||
2018-06-02 Eric Botcazou <ebotcazou@adacore.com>
|
2018-06-02 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: If this is
|
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: If this is
|
||||||
|
@ -999,6 +999,20 @@ package body Exp_Unst is
|
|||||||
and then not Is_Static_Type (Ent)
|
and then not Is_Static_Type (Ent)
|
||||||
then
|
then
|
||||||
Note_Uplevel_Ref (Ent, N, Caller, Callee);
|
Note_Uplevel_Ref (Ent, N, Caller, Callee);
|
||||||
|
|
||||||
|
-- Check the type of a formal parameter of the current
|
||||||
|
-- subprogram, whose formal type may be an uplevel
|
||||||
|
-- reference.
|
||||||
|
|
||||||
|
elsif Is_Formal (Ent)
|
||||||
|
and then Scope (Ent) = Current_Subprogram
|
||||||
|
then
|
||||||
|
declare
|
||||||
|
DT : Boolean := False;
|
||||||
|
|
||||||
|
begin
|
||||||
|
Check_Static_Type (Etype (Ent), Empty, DT);
|
||||||
|
end;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
|
Loading…
Reference in New Issue
Block a user