+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * exp_ch13.adb: Adjust previous change.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb,
+ exp_ch4.adb, sem_ch8.adb: Minor code reorganization
+ Minor reformatting.
+
2011-08-29 Emmanuel Briot <briot@adacore.com>
* make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also
Delete : Boolean := False;
begin
- -- In formal verification mode, do not generate useless and confusing
- -- expansion for freeze nodes.
-
- if ALFA_Mode then
- return;
- end if;
-
-- If there are delayed aspect specifications, we insert them just
-- before the freeze node. They are already analyzed so we don't need
-- to reanalyze them (they were analyzed before the type was frozen),
Test : Node_Id;
begin
+ -- Do not expand quantified expressions in ALFA mode
+ -- why not???
+
if ALFA_Mode then
return;
end if;
if Debug_Flag_Dot_XX then
Use_Expression_With_Actions := True;
- -- Debug flag -gnatd.Y decisively set usage off
+ -- Debug flag -gnatd.Y decisively sets usage off
elsif Debug_Flag_Dot_YY then
Use_Expression_With_Actions := False;
Debug_Flag_HH := True;
-- Disable Expressions_With_Actions nodes
+
-- The gnat2why backend does not deal with Expressions_With_Actions
-- in all places (in particular assertions). It is difficult to
-- determine in the frontend which cases are allowed, so we disable
Tree : Project_Tree_Ref)
is
procedure Analyze_Tree
- (Local_Root : Project_Id; Local_Tree : Project_Tree_Ref);
+ (Local_Root : Project_Id;
+ Local_Tree : Project_Tree_Ref);
-- Process Project and all its aggregated project to analyze their own
-- imported projects.
------------------
procedure Analyze_Tree
- (Local_Root : Project_Id; Local_Tree : Project_Tree_Ref)
+ (Local_Root : Project_Id;
+ Local_Tree : Project_Tree_Ref)
is
pragma Unreferenced (Local_Root);
Dummy : in out Boolean)
is
pragma Unreferenced (Dummy, Tree);
- List : Project_List;
- Prj2 : Project_Id;
+ List : Project_List;
+ Prj2 : Project_Id;
begin
-- A project is not importing itself
Dummy : Boolean := False;
List : Project_List;
+
begin
List := Local_Tree.Projects;
while List /= null loop
procedure For_Aggregates is
new For_Project_And_Aggregated (Analyze_Tree);
+ -- Start of processing for Compute_All_Imported_Projects
+
begin
For_Aggregates (Root_Project, Tree);
end Compute_All_Imported_Projects;
Scope_Depth (Old_S)
then
return Old_S;
-
else
return It.Nam;
end if;
return Report_Overload;
end if;
- -- If not within an instance, ambiguity is real.
+ -- If not within an instance, ambiguity is real
else
return Report_Overload;
if Arg_Count = 4 then
Check_Identifier (Arg3, Name_Requires);
Check_Identifier (Arg4, Name_Ensures);
+
elsif Arg_Count = 3 then
Check_Identifier_Is_One_Of (Arg3, Name_Requires, Name_Ensures);
end if;
procedure Resolve_Quantified_Expression (N : Node_Id; Typ : Entity_Id) is
begin
+ -- Normal mode (not ALFA)
+
if not ALFA_Mode then
-- The loop structure is already resolved during its analysis, only
Expander_Mode_Save_And_Set (False);
Resolve (Condition (N), Typ);
Expander_Mode_Restore;
- else
- -- In ALFA_Mode, no such magic needs to happen, we just resolve the
- -- underlying nodes.
+ -- In ALFA_Mode, no magic needed, we just resolve the underlying nodes
+ else
Resolve (Condition (N), Typ);
end if;
end Resolve_Quantified_Expression;
function Get_Ensures_From_Test_Case_Pragma (N : Node_Id) return Node_Id is
Args : constant List_Id := Pragma_Argument_Associations (N);
- Res : Node_Id := Empty;
+ Res : Node_Id;
begin
if List_Length (Args) = 4 then
elsif List_Length (Args) = 3 then
Res := Pick (Args, 3);
+
if Chars (Res) /= Name_Ensures then
Res := Empty;
end if;
+
+ else
+ Res := Empty;
end if;
return Res;
function Get_Requires_From_Test_Case_Pragma (N : Node_Id) return Node_Id is
Args : constant List_Id := Pragma_Argument_Associations (N);
- Res : Node_Id := Empty;
+ Res : Node_Id;
begin
if List_Length (Args) >= 3 then
Res := Pick (Args, 3);
+
if Chars (Res) /= Name_Requires then
Res := Empty;
end if;
+
+ else
+ Res := Empty;
end if;
return Res;