diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-30 16:24:37 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-30 16:24:37 +0000 |
commit | 4606d5a97a353a2f8437a7cf630b5405cee1d095 (patch) | |
tree | e85c08fdecea3c8ab0ac525dc1311885778f9026 /gcc/ada/exp_ch9.ads | |
parent | a03d88529bd3869f487af494484d9b2005e3074c (diff) | |
download | gcc-4606d5a97a353a2f8437a7cf630b5405cee1d095.tar.gz |
2009-11-30 Ed Schonberg <schonberg@adacore.com>
* exp_ch9.ads (Build_Private_Protected_Declaration): For a protected
operation that is only declared in a protected body, create a
corresponding subprogram declaration.
* exp_ch9.adb (Expand_N_Protected_Body): Create protected body of
operation in all cases, including for an operation that is only
declared in the body.
* sem_ch6.adb: Call Build_Private_Protected_Declaration
* exp_ch6.adb (Expand_N_Subprogram_Declaration): For an operation
declared in a protected body, create the declaration for the
corresponding protected version of the operation.
2009-11-30 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Disable specific expansions
for Restrictions pragmas, to avoid tree inconsistencies between
compilations with different pragmas.
2009-11-30 Jerome Lambourg <lambourg@adacore.com>
* sem_prag.adb (Check_Duplicated_Export_Name): Allow entities exported
to CIL to have duplicated export name.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154828 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_ch9.ads')
-rw-r--r-- | gcc/ada/exp_ch9.ads | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ada/exp_ch9.ads b/gcc/ada/exp_ch9.ads index 61279d4eac5..1bb810690e5 100644 --- a/gcc/ada/exp_ch9.ads +++ b/gcc/ada/exp_ch9.ads @@ -81,6 +81,15 @@ package Exp_Ch9 is -- object at the outer level, but it is much easier to generate one per -- declarative part. + function Build_Private_Protected_Declaration (N : Node_Id) return Entity_Id; + -- A subprogram body without a previous spec that appears in a protected + -- body must be expanded separately to create a subprogram declaration + -- for it, in order to resolve internal calls to it from other protected + -- operations. It would seem that no locking version of the operation is + -- needed, but in fact, in Ada2005 the subprogram may be used in a call- + -- back, and therefore a protected version of the operation must be + -- generated as well. + function Build_Protected_Sub_Specification (N : Node_Id; Prot_Typ : Entity_Id; |