Commit 088c2c8d by Arnaud Charlet

[multiple changes]

2013-02-06  Robert Dewar  <dewar@adacore.com>

	* s-dim.ads, clean.adb: Minor reformatting.

2013-02-06  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Undo previous patch.
	(Can_Split_Unconstrained_Function): Only split the inlined function if
	the compiler generates the code of its body.

From-SVN: r195789
parent 3860d469
2013-02-06 Robert Dewar <dewar@adacore.com> 2013-02-06 Robert Dewar <dewar@adacore.com>
* s-dim.ads, clean.adb: Minor reformatting.
2013-02-06 Javier Miranda <miranda@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Undo previous patch.
(Can_Split_Unconstrained_Function): Only split the inlined function if
the compiler generates the code of its body.
2013-02-06 Robert Dewar <dewar@adacore.com>
* exp_prag.adb, sem_ch3.adb, exp_attr.adb, sem_prag.adb, sem_ch6.adb, * exp_prag.adb, sem_ch3.adb, exp_attr.adb, sem_prag.adb, sem_ch6.adb,
exp_intr.adb, exp_dist.adb, sem_ch13.adb: Internal clean up for exp_intr.adb, exp_dist.adb, sem_ch13.adb: Internal clean up for
N_Pragma nodes. N_Pragma nodes.
......
...@@ -1261,10 +1261,8 @@ package body Clean is ...@@ -1261,10 +1261,8 @@ package body Clean is
or else Host_Full_Name'Length = 0 or else Host_Full_Name'Length = 0
then then
Success := False; Success := False;
else else
Delete_File Delete_File (Host_Full_Name.all & ";*", Success);
(Host_Full_Name.all & ";*", Success);
end if; end if;
end; end;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- S p e c -- -- S p e c --
-- -- -- --
-- Copyright (C) 2012, Free Software Foundation, Inc. -- -- Copyright (C) 2012-2013, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- -- -- terms of the GNU General Public License as published by the Free Soft- --
......
...@@ -2909,10 +2909,6 @@ package body Sem_Ch6 is ...@@ -2909,10 +2909,6 @@ package body Sem_Ch6 is
and then Serious_Errors_Detected = 0 and then Serious_Errors_Detected = 0
and then Present (Spec_Id) and then Present (Spec_Id)
and then Has_Pragma_Inline (Spec_Id) and then Has_Pragma_Inline (Spec_Id)
-- This test needs commenting ???
and then In_Extended_Main_Code_Unit (N)
then then
Check_And_Build_Body_To_Inline (N, Spec_Id, Body_Id); Check_And_Build_Body_To_Inline (N, Spec_Id, Body_Id);
end if; end if;
...@@ -4268,9 +4264,9 @@ package body Sem_Ch6 is ...@@ -4268,9 +4264,9 @@ package body Sem_Ch6 is
-- This body is subsequently used for inline expansions at call sites. -- This body is subsequently used for inline expansions at call sites.
function Can_Split_Unconstrained_Function (N : Node_Id) return Boolean; function Can_Split_Unconstrained_Function (N : Node_Id) return Boolean;
-- Return true if the function body N has no local declarations and its -- Return true if we generate code for the function body N, the function
-- unique statement is a single extended return statement with a handled -- body N has no local declarations and its unique statement is a single
-- statements sequence. -- extended return statement with a handled statements sequence.
function Check_Body_To_Inline function Check_Body_To_Inline
(N : Node_Id; (N : Node_Id;
...@@ -5005,7 +5001,13 @@ package body Sem_Ch6 is ...@@ -5005,7 +5001,13 @@ package body Sem_Ch6 is
end loop; end loop;
end if; end if;
return Present (Ret_Node) -- We only split the inlined function when we are generating the code
-- of its body; otherwise we leave duplicated split subprograms in
-- the tree which (if referenced) generate wrong references at link
-- time.
return In_Extended_Main_Code_Unit (N)
and then Present (Ret_Node)
and then Nkind (Ret_Node) = N_Extended_Return_Statement and then Nkind (Ret_Node) = N_Extended_Return_Statement
and then No (Next (Ret_Node)) and then No (Next (Ret_Node))
and then Present (Handled_Statement_Sequence (Ret_Node)); and then Present (Handled_Statement_Sequence (Ret_Node));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment