------- Additional Comments From ebotcazou at gcc dot gnu dot org  2005-06-07 
11:30 -------
> This problem happens for platforms that set STRICT_ALIGNMENT.  For them it is
> possible for a given record type to be expressed using an integer mode if used
> as a member record, and the BLK mode if used standalone.  As a result an
> assignment where lhs is BLKmode and rhs is *Imode may be generated and this
> triggers an ICE.

That's not quite true, the type is not the same.

> I've been able to track the problem down to the alignment of member records
> being increased implicitly in an attempt to fit them into an integer mode.
> I believe it is incorrect as it changes the alignment of the containing
> record as well and therefore it changes the ABI.

How does that change the ABI for the containing record type?  The type is laid
out only once.  As for members, this is only done for non-aliased members so ABI
considerations are irrelevant.

> 2005-06-07  Maciej W. Rozycki  <[EMAIL PROTECTED]>
> 
>         * ada/decl.c (make_packable_type): Use the same alignment for the new
>         type.

That would defeat the purpose of make_packable_type.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ebotcazou at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-06-07 11:30:35
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21937

Reply via email to