diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-02-06 10:13:42 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-02-06 10:13:42 +0000 |
commit | 285cdf4d0663c52b6e776453dee51fd3ed967b44 (patch) | |
tree | 42e7228e879dc2072cd4a58fb61298bb9c4c44e2 /gcc/ada/einfo.adb | |
parent | 27cc55125ea9dc6ebdc80a2801bb3db4ef00f86b (diff) | |
download | gcc-285cdf4d0663c52b6e776453dee51fd3ed967b44.tar.gz |
2014-02-06 Sergey Rybin <rybin@adacore.com frybin>
* gnat_ugn.texi, vms_data.ads: Add documentation of -j option for
gnatelim.
2014-02-06 Eric Botcazou <ebotcazou@adacore.com>
* gnat_rm.texi (Pragma Optimize_Alignment): Document the effect
of the pragma on individual objects.
2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb Node29 is now used as BIP_Initialization_Call.
(BIP_Initialization_Call): New routine.
(Set_BIP_Initialization_Call): New routine.
(Write_Field29_Name): Add an entry for constants and variables.
* einfo.ads Add new attribute BIP_Initialization_Call and update
its usage in nodes.
(BIP_Initialization_Call): New routine along with pragma Inline.
(Set_BIP_Initialization_Call): New routine along with pragma Inline.
* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
Add local declaration Res_Decl. Capture the build-in-place
initialization call when the related object declaration has
created a transient block.
* exp_ch7.adb (Process_Transient_Objects): Add local variable
Fin_Insrt. Recognize a scenario where an object declaration acts
as a transient context and is initialized by a build-in-place
function call.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207543 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/einfo.adb')
-rw-r--r-- | gcc/ada/einfo.adb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb index d684663e4a0..c1e0dd17849 100644 --- a/gcc/ada/einfo.adb +++ b/gcc/ada/einfo.adb @@ -242,6 +242,7 @@ package body Einfo is -- Initialization_Statements Node28 -- Underlying_Record_View Node28 + -- BIP_Initialization_Call Node29 -- Subprograms_For_Type Node29 -- Corresponding_Equality Node30 @@ -767,6 +768,12 @@ package body Einfo is return Elist16 (Id); end Body_References; + function BIP_Initialization_Call (Id : E) return N is + begin + pragma Assert (Ekind_In (Id, E_Constant, E_Variable)); + return Node29 (Id); + end BIP_Initialization_Call; + function C_Pass_By_Copy (Id : E) return B is begin pragma Assert (Is_Record_Type (Id)); @@ -3434,6 +3441,12 @@ package body Einfo is Set_Elist16 (Id, V); end Set_Body_References; + procedure Set_BIP_Initialization_Call (Id : E; V : N) is + begin + pragma Assert (Ekind_In (Id, E_Constant, E_Variable)); + Set_Node29 (Id, V); + end Set_BIP_Initialization_Call; + procedure Set_C_Pass_By_Copy (Id : E; V : B := True) is begin pragma Assert (Is_Record_Type (Id) and then Is_Base_Type (Id)); @@ -9419,6 +9432,10 @@ package body Einfo is procedure Write_Field29_Name (Id : Entity_Id) is begin case Ekind (Id) is + when E_Constant | + E_Variable => + Write_Str ("BIP_Initialization_Call"); + when Type_Kind => Write_Str ("Subprograms_For_Type"); |