layout.adb (Layout_Record_Type): Deal with non-static subtypes of variant records
authorRobert Dewar <dewar@adacore.com>
Tue, 31 Oct 2006 18:01:28 +0000 (19:01 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 31 Oct 2006 18:01:28 +0000 (19:01 +0100)
commitcac01ae32bfe8b2a0c868e454a3105f818745eb0
treed1570e776b06742e3b57c6e0e7ceb94a384bca91
parent2d6a1685fa6007072522a8531e204ca118854f5b
layout.adb (Layout_Record_Type): Deal with non-static subtypes of variant records

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
        variant records
        (Layout_Variant_Record): Retrieve the discriminants from the entity
rather than from the type definition, because in the case of a full
type for a private type we need to take the discriminants from the
partial view.
        (Layout_Component_List): When applying the Max operator to variants with
        a nonstatic size, check whether either operand is static and scale that
        operand from bits to storage units before applying Max.
(Layout_Type): In VMS, if a C-convention access type has no explicit
size clause (and does not inherit one in the case of a derived type),
then the size is reset to 32 from 64.

From-SVN: r118283
gcc/ada/layout.adb