From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22481 invoked by alias); 7 Jun 2005 18:16:51 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 22469 invoked by uid 48); 7 Jun 2005 18:16:48 -0000 Date: Tue, 07 Jun 2005 18:16:00 -0000 Message-ID: <20050607181648.22468.qmail@sourceware.org> From: "macro at linux-mips dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050606204209.21937.macro@linux-mips.org> References: <20050606204209.21937.macro@linux-mips.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug ada/21937] [4.0 Regression] Member record alignment triggers an ICE X-Bugzilla-Reason: CC X-SW-Source: 2005-06/txt/msg01124.txt.bz2 List-Id: ------- Additional Comments From macro at linux-mips dot org 2005-06-07 18:16 ------- > > Of course it changes the ABI -- if any member of a record (which is an > > equivalent to a C structure) gets its alignment increased, then the alignment > > of the containing record (structure) gets adjusted appropriately. > > Sure, but since all records of this type will be laid out the same way, where is > the problem? This only happens for packed records or records with After a short consideration I agree -- it would only be a problem if the case was reversed, i.e. standalone records got their alignment bumped while member oned did not. > representation clauses, both not bound to any ABI rules as far as Ada is concerned. Well, there may be no written standard for this case, but there is always an ABI, even if limited to GCC. > > If I understand code correctly compute_record_mode() should still be able to > > use one of the integer modes for platforms that don't care about alignment. > > x86 is not (yet) the only platform out there. :-) Well, you may have noticed I'm already aware of this -- otherwise I wouldn't have filed the report in the first place. But the problem is the i386 is probably the architecture most code is primarily tested with and unfortunately it has quite forgiving restrictions about alignment. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21937