exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to compute masking...
authorRobert Dewar <dewar@adacore.com>
Wed, 6 Jun 2007 10:27:26 +0000 (12:27 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 6 Jun 2007 10:27:26 +0000 (12:27 +0200)
commit7d8b9c9990b3e3cc13303e3dd0057ff87994120b
tree8dbb8956d7b6fae75a458b50ca8d54eb7a6a1441
parentb545a0f665f17f255262053f9ebf27f718bdfabc
exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to compute masking constant...

2007-04-20  Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
compute masking constant, since we now set Esize properly to the
underlying size.
(Create_Packed_Array_Type): Set proper Esize value adjusted as required
to match the alignment.
(Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
packed arrays of 8 bits or less.

* freeze.adb (Freeze_Entity): When freezing the formals of a
subprogram, freeze the designated type of a parameter of an access type
only if it is an access parameter.
Increase size of C convention enumeration object
(Freeze_Entity, array type case): Make sure Esize value is properly
adjusted for the alignment if it is known.
(Freeze_Entity, array type case): When checking bit packed arrays for
the size being incorrect, check RM_Size, not Esize.
(Freeze_Record_Type): Check for bad discriminated record convention
(In_Exp_Body): Return true if the body is generated for a subprogram
renaming, either an attribute renaming or a renaming as body.
(Check_Itype): If the designated type of an anonymous access component
is a non-protected subprogram type, indicate that it is frozen, to
prevent out-of-scope freeze node at some subsequent call.
(Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
only if the subprogram is neither imported nor exported, as well as the
NCA descriptor class if the subprogram is exported.

From-SVN: r125407
gcc/ada/exp_pakd.adb
gcc/ada/freeze.adb