This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ada/21937] Member record alignment triggering an ICE
- From: "ebotcazou at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 7 Jun 2005 11:30:36 -0000
- Subject: [Bug ada/21937] Member record alignment triggering an ICE
- References: <20050606204209.21937.macro@linux-mips.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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 <macro@linux-mips.org>
>
> * 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