sem_ch6.adb (Conforming_Types): If the types are anonymous access types check whether some designated type is a...
2005-07-04 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Conforming_Types): If the types are anonymous access types check whether some designated type is a limited view, and use the non-limited view if available. From-SVN: r101588
This commit is contained in:
parent
d3e65aad2c
commit
9dcb52e145
|
@ -3326,19 +3326,27 @@ package body Sem_Ch6 is
|
|||
Desig_1 := Directly_Designated_Type (Type_1);
|
||||
|
||||
-- An access parameter can designate an incomplete type
|
||||
-- If the incomplete type is the limited view of a type
|
||||
-- from a limited_with_clause, check whether the non-limited
|
||||
-- view is available.
|
||||
|
||||
if Ekind (Desig_1) = E_Incomplete_Type
|
||||
and then Present (Full_View (Desig_1))
|
||||
then
|
||||
Desig_1 := Full_View (Desig_1);
|
||||
if Ekind (Desig_1) = E_Incomplete_Type then
|
||||
if Present (Full_View (Desig_1)) then
|
||||
Desig_1 := Full_View (Desig_1);
|
||||
|
||||
elsif Present (Non_Limited_View (Desig_1)) then
|
||||
Desig_1 := Non_Limited_View (Desig_1);
|
||||
end if;
|
||||
end if;
|
||||
|
||||
Desig_2 := Directly_Designated_Type (Type_2);
|
||||
|
||||
if Ekind (Desig_2) = E_Incomplete_Type
|
||||
and then Present (Full_View (Desig_2))
|
||||
then
|
||||
Desig_2 := Full_View (Desig_2);
|
||||
if Ekind (Desig_2) = E_Incomplete_Type then
|
||||
if Present (Full_View (Desig_2)) then
|
||||
Desig_2 := Full_View (Desig_2);
|
||||
elsif Present (Non_Limited_View (Desig_2)) then
|
||||
Desig_2 := Non_Limited_View (Desig_2);
|
||||
end if;
|
||||
end if;
|
||||
|
||||
-- The context is an instance association for a formal
|
||||
|
|
Loading…
Reference in New Issue