This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Manually tested on IVMS
Tested on i686-linux, committed on trunk.
This patch affects OpenVMS 64-bit ports. The problem is that the
HP C compiler can use either 32 or 64 bit pointers depending on
compiler options. This means that Convention C in GNAT must decide
on which to choose. An analysis shows that 32-bits is a better
default with respect to legacy compatibility. An explicit size
clause can be used to force 64-bits.
Also some clean up in handling of front-end layout on e.g. GNAAMP target.
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.
Attachment:
difs
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |