sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex visibility check on the component type if the simple test fails.

2008-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
	visibility check on the component type if the simple test fails.

From-SVN: r138697
This commit is contained in:
Arnaud Charlet 2008-08-05 11:40:19 +02:00
parent 628a4180a3
commit ba3fa65037
2 changed files with 24 additions and 3 deletions

View File

@ -1,3 +1,14 @@
2008-08-05 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb: Minor reformatting
* prj-nmsc.adb: Minor reformatting
2008-08-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
visibility check on the component type if the simple test fails.
2008-08-05 Jose Ruiz <ruiz@adacore.com>
* init.c (__gnat_install_handler for linux): If we are building the

View File

@ -9246,10 +9246,20 @@ package body Sem_Ch12 is
Next_Index (I2);
end loop;
if not Subtypes_Match
(Find_Actual_Type (Component_Type (A_Gen_T), A_Gen_T),
Component_Type (Act_T))
-- Check matching subtypes. Note that there are complex visibility
-- issues when the generic is a child unit and some aspect of the
-- generic type is declared in a parent unit of the generic. We do
-- the test to handle this special case only after a direct check
-- for static matching has failed.
if Subtypes_Match
(Component_Type (A_Gen_T), Component_Type (Act_T))
or else Subtypes_Match
(Find_Actual_Type (Component_Type (A_Gen_T), A_Gen_T),
Component_Type (Act_T))
then
null;
else
Error_Msg_NE
("component subtype of actual does not match that of formal &",
Actual, Gen_T);