mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-28 13:34:59 +08:00
[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
This commit is contained in:
parent
3860d46902
commit
088c2c8d37
@ -1,3 +1,13 @@
|
||||
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,
|
||||
|
@ -1261,10 +1261,8 @@ package body Clean is
|
||||
or else Host_Full_Name'Length = 0
|
||||
then
|
||||
Success := False;
|
||||
|
||||
else
|
||||
Delete_File
|
||||
(Host_Full_Name.all & ";*", Success);
|
||||
Delete_File (Host_Full_Name.all & ";*", Success);
|
||||
end if;
|
||||
end;
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
-- --
|
||||
-- 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 --
|
||||
-- terms of the GNU General Public License as published by the Free Soft- --
|
||||
|
@ -2909,10 +2909,6 @@ package body Sem_Ch6 is
|
||||
and then Serious_Errors_Detected = 0
|
||||
and then Present (Spec_Id)
|
||||
and then Has_Pragma_Inline (Spec_Id)
|
||||
|
||||
-- This test needs commenting ???
|
||||
|
||||
and then In_Extended_Main_Code_Unit (N)
|
||||
then
|
||||
Check_And_Build_Body_To_Inline (N, Spec_Id, Body_Id);
|
||||
end if;
|
||||
@ -4268,9 +4264,9 @@ package body Sem_Ch6 is
|
||||
-- This body is subsequently used for inline expansions at call sites.
|
||||
|
||||
function Can_Split_Unconstrained_Function (N : Node_Id) return Boolean;
|
||||
-- Return true if the function body N has no local declarations and its
|
||||
-- unique statement is a single extended return statement with a handled
|
||||
-- statements sequence.
|
||||
-- Return true if we generate code for the function body N, the function
|
||||
-- body N has no local declarations and its unique statement is a single
|
||||
-- extended return statement with a handled statements sequence.
|
||||
|
||||
function Check_Body_To_Inline
|
||||
(N : Node_Id;
|
||||
@ -5005,7 +5001,13 @@ package body Sem_Ch6 is
|
||||
end loop;
|
||||
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 No (Next (Ret_Node))
|
||||
and then Present (Handled_Statement_Sequence (Ret_Node));
|
||||
|
Loading…
Reference in New Issue
Block a user