diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-05 07:53:24 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-05 07:53:24 +0000 |
commit | 948ef2b825ca5bace1ec247e7c6a121c9c271b71 (patch) | |
tree | 81769ea78a2ec7af5e792a2936b265ee2eb8060b /gcc/ada/exp_dbug.ads | |
parent | 6e62b6c3b01ad9adc92f4bbed7e97677b1fbcb07 (diff) | |
download | gcc-948ef2b825ca5bace1ec247e7c6a121c9c271b71.tar.gz |
2005-09-01 Ed Schonberg <schonberg@adacore.com>
Hristian Kirtchev <kirtchev@adacore.com>
Javier Miranda <miranda@adacore.com>
* exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
from object notation, the original node is unanalyzed and carries no
semantic information, so that accessiblity checks must be performed on
the type of the actual itself.
(Expand_N_Subprogram_Declaration): Change last actual parameter for
compatibility with Build_Protected_Sub_Specification.
(Check_Overriding_Inherited_Interfaces): Add suport to handle
overloaded primitives.
(Register_Interface_DT_Entry): Use the new name of the formal
the the calls to Expand_Interface_Thunk
* exp_dbug.ads: Augment comments on encoding of protected types to
include the generation of dispatching subprograms when the type
implements at least one interface.
* lib.ads: Extend information in Load_Stack to include whether a given
load comes from a Limited_With_Clause.
* lib-load.adb (From_Limited_With_Chain): New predicate to determine
whether a potential circularity is harmless, because it includes units
loaded through a limited_with clause. Extends previous treatment which
did not handle properly arbitrary combinations of limited and
non-limited clauses.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103861 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_dbug.ads')
-rw-r--r-- | gcc/ada/exp_dbug.ads | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/gcc/ada/exp_dbug.ads b/gcc/ada/exp_dbug.ads index ebee3903448..9100d9c2fab 100644 --- a/gcc/ada/exp_dbug.ads +++ b/gcc/ada/exp_dbug.ads @@ -89,7 +89,7 @@ package Exp_Dbug is -- x -- y.z - -- The separating dots are translated into double underscores. + -- The separating dots are translated into double underscores ----------------------------- -- Handling of Overloading -- @@ -385,6 +385,28 @@ package Exp_Dbug is -- lock_update1sE -- lock_udpate2sB + -- If the protected type implements at least one interface, the + -- following additional operations are created: + + -- lock_get + + -- lock_set + + -- These operations are used to ensure overriding of interface level + -- subprograms and proper dispatching on interface class-wide objects. + -- The bodies of these operations contain calls to their respective + -- protected versions: + + -- function lock_get return Integer is + -- begin + -- return lock_getP; + -- end lock_get; + + -- procedure lock_set (X : Integer) is + -- begin + -- lock_setP (X); + -- end lock_set; + ---------------------------------------------------- -- Conversion between Entities and External Names -- ---------------------------------------------------- @@ -686,9 +708,9 @@ package Exp_Dbug is -- follows. In this description, let P represent the current -- bit position in the record. - -- 1. Initialize P to 0. + -- 1. Initialize P to 0 - -- 2. For each field in the record, + -- 2. For each field in the record: -- 2a. If an alignment is given (see below), then round P -- up, if needed, to the next multiple of that alignment. @@ -697,7 +719,7 @@ package Exp_Dbug is -- amount (that is, treat it as an offset from the end of the -- preceding record). - -- 2c. Assign P as the actual position of the field. + -- 2c. Assign P as the actual position of the field -- 2d. Compute the length, L, of the represented field (see below) -- and compute P'=P+L. Unless the field represents a variant part @@ -963,7 +985,7 @@ package Exp_Dbug is -- name of the parent unit, to disambiguate child units with the same -- simple name and (of necessity) different parents. - -- Note: subprogram renamings are not encoded at the present time. + -- Note: subprogram renamings are not encoded at the present time -- The type is an enumeration type with a single enumeration literal -- that is an identifier which describes the renamed variable. |