[multiple changes]
2011-08-05 Yannick Moy <moy@adacore.com> * sem_ch12.adb (Analyze_Package_Instantiation, Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA mode. 2011-08-05 Ed Schonberg <schonberg@adacore.com> * sem_type.adb (Specific_Type): in an instance, the type-specific operand of an equality check that involves null may have a private type. Use full view to determine legality of construct. From-SVN: r177444
This commit is contained in:
parent
822868aa56
commit
5f9cdefe6b
3 changed files with 25 additions and 0 deletions
|
@ -1,3 +1,15 @@
|
|||
2011-08-05 Yannick Moy <moy@adacore.com>
|
||||
|
||||
* sem_ch12.adb (Analyze_Package_Instantiation,
|
||||
Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA
|
||||
mode.
|
||||
|
||||
2011-08-05 Ed Schonberg <schonberg@adacore.com>
|
||||
|
||||
* sem_type.adb (Specific_Type): in an instance, the type-specific
|
||||
operand of an equality check that involves null may have a private
|
||||
type. Use full view to determine legality of construct.
|
||||
|
||||
2011-08-05 Vincent Celier <celier@adacore.com>
|
||||
|
||||
* gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
|
||||
|
|
|
@ -3400,6 +3400,7 @@ package body Sem_Ch12 is
|
|||
or else Might_Inline_Subp)
|
||||
and then not Is_Actual_Pack
|
||||
and then not Inline_Now
|
||||
and then not ALFA_Mode
|
||||
and then (Operating_Mode = Generate_Code
|
||||
or else (Operating_Mode = Check_Semantics
|
||||
and then ASIS_Mode));
|
||||
|
@ -4015,6 +4016,7 @@ package body Sem_Ch12 is
|
|||
if (Is_In_Main_Unit (N)
|
||||
or else Is_Inlined (Subp)
|
||||
or else Is_Inlined (Alias (Subp)))
|
||||
and then not ALFA_Mode
|
||||
and then (Operating_Mode = Generate_Code
|
||||
or else (Operating_Mode = Check_Semantics
|
||||
and then ASIS_Mode))
|
||||
|
|
|
@ -3198,6 +3198,17 @@ package body Sem_Type is
|
|||
then
|
||||
return T1;
|
||||
|
||||
-- In an instance, the specific type may have a private view. Use full
|
||||
-- view to check legality.
|
||||
|
||||
elsif T2 = Any_Access
|
||||
and then Is_Private_Type (T1)
|
||||
and then Present (Full_View (T1))
|
||||
and then Is_Access_Type (Full_View (T1))
|
||||
and then In_Instance
|
||||
then
|
||||
return T1;
|
||||
|
||||
elsif T2 = Any_Composite
|
||||
and then Is_Aggregate_Type (T1)
|
||||
then
|
||||
|
|
Loading…
Add table
Reference in a new issue