exp_ch7.adb
116 KB
-
exp_ch7.adb (Build_Array_Deep_Procs, [...]): Rename Is_Return_By_Reference_Type… · 05350ac6
exp_ch7.adb (Build_Array_Deep_Procs, [...]): Rename Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type... 2006-10-31 Bob Duff <duff@adacore.com> Ed Schonberg <schonberg@adacore.com> Robert Dewar <dewar@adacore.com> * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs, Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because return-by-reference has no meaning in Ada 2005. (Find_Node_To_Be_Wrapped): Use new method of determining the result type of the function containing a return statement, because the Return_Type field was removed. We now use the Return_Applies_To field. * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test (Build_Task_Image_Decl): If procedure is not called from an initialization procedure, indicate that function that builds task name uses the sec. stack. Otherwise the enclosing initialization procedure will carry the indication. (Insert_Actions): Remove N_Return_Object_Declaration. We now use N_Object_Declaration instead. (Kill_Dead_Code): New interface to implement -gnatwt warning for conditional dead code killed, and change implementation accordingly. (Insert_Actions): Add N_Return_Object_Declaration case. Correct comment to mention N_Extension_Aggregate node. (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad attempts to save information for global variables which cannot be safely tracked. (Get_Current_Value_Condition): Handle conditions the other way round (constant on left). Also handle right operand of AND and AND THEN (Set_Current_Value_Condition): Corresponding changes (Append_Freeze_Action): Remove unnecessary initialization of Fnode. (Get_Current_Value_Condition): Handle simple boolean operands (Get_Current_Value_Condition): Handle left operand of AND or AND THEN (Get_Current_Value_Condition): If the variable reference is within an if-statement, does not appear in the list of then_statments, and does not come from source, treat it as being at unknown location. (Get_Current_Value_Condition): Enhance to allow while statements to be processed as well as if statements. (New_Class_Wide_Subtype): The entity for a class-wide subtype does not come from source. (OK_To_Do_Constant_Replacement): Allow constant replacement within body of loop. This is safe now that we fixed Kill_Current_Values. (OK_To_Do_Constant_Replacement): Check whether current scope is Standard, before examining outer scopes. From-SVN: r118269
Bob Duff committed