mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-13 15:31:15 +08:00
[multiple changes]
2010-10-04 Robert Dewar <dewar@adacore.com> * sem_res.adb, sinput-l.adb: Minor reformatting. 2010-10-04 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch5.adb (Expand_N_Assignment_Statement): Do not generate a tag check when the target object is an interface since the expression of the right hand side must only cover the interface. From-SVN: r164935
This commit is contained in:
parent
ea4ce0f777
commit
477bd73273
@ -1,3 +1,13 @@
|
||||
2010-10-04 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* sem_res.adb, sinput-l.adb: Minor reformatting.
|
||||
|
||||
2010-10-04 Hristian Kirtchev <kirtchev@adacore.com>
|
||||
|
||||
* exp_ch5.adb (Expand_N_Assignment_Statement): Do not generate a tag
|
||||
check when the target object is an interface since the expression of
|
||||
the right hand side must only cover the interface.
|
||||
|
||||
2010-10-04 Vincent Celier <celier@adacore.com>
|
||||
|
||||
* frontend.adb: Set Lib.Parsing_Main_Extended_Source to True before
|
||||
|
@ -1956,6 +1956,12 @@ package body Exp_Ch5 is
|
||||
if Is_Class_Wide_Type (Typ)
|
||||
and then Is_Tagged_Type (Typ)
|
||||
and then Is_Tagged_Type (Underlying_Type (Etype (Rhs)))
|
||||
|
||||
-- Do not generate a tag check when the target object is
|
||||
-- an interface since the expression of the right hand
|
||||
-- side must only cover the interface.
|
||||
|
||||
and then not Is_Interface (Typ)
|
||||
then
|
||||
Append_To (L,
|
||||
Make_Raise_Constraint_Error (Loc,
|
||||
|
@ -8826,9 +8826,9 @@ package body Sem_Res is
|
||||
(Etype (Entity (Orig_N)) = Orig_T
|
||||
or else
|
||||
(Ekind (Entity (Orig_N)) = E_Loop_Parameter
|
||||
and then Covers (Orig_T, Etype (Entity (Orig_N))))))
|
||||
and then Covers (Orig_T, Etype (Entity (Orig_N))))))
|
||||
|
||||
-- If not an entity, then type of expression must match
|
||||
-- If not an entity, then type of expression must match
|
||||
|
||||
or else Etype (Orig_N) = Orig_T
|
||||
then
|
||||
|
@ -556,13 +556,14 @@ package body Sinput.L is
|
||||
-- the source has been modified by the preprocessing. Only
|
||||
-- do that for the main unit (spec, body and subunits).
|
||||
|
||||
if Generate_Processed_File and then
|
||||
Modified and then
|
||||
if Generate_Processed_File
|
||||
and then Modified
|
||||
and then
|
||||
((Compiler_State = Parsing
|
||||
and then Parsing_Main_Extended_Source)
|
||||
or else
|
||||
(Compiler_State = Analyzing
|
||||
and then Analysing_Subunit_Of_Main))
|
||||
and then Parsing_Main_Extended_Source)
|
||||
or else
|
||||
(Compiler_State = Analyzing
|
||||
and then Analysing_Subunit_Of_Main))
|
||||
then
|
||||
declare
|
||||
FD : File_Descriptor;
|
||||
|
Loading…
x
Reference in New Issue
Block a user