From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11022 invoked by alias); 9 Apr 2003 22:06:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 10974 invoked by uid 71); 9 Apr 2003 22:06:01 -0000 Date: Wed, 09 Apr 2003 22:06:00 -0000 Message-ID: <20030409220601.10973.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Frederic De Jaeger Subject: Re: c/10360: __alignof__(double) answer 8 Reply-To: Frederic De Jaeger X-SW-Source: 2003-04/txt/msg00397.txt.bz2 List-Id: The following reply was made to PR c/10360; it has been noted by GNATS. From: Frederic De Jaeger To: rth@gcc.gnu.org, discuss-gnustep@gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, richard@brainstorm.co.uk, thoran@free.fr, gcc-gnats@gcc.gnu.org Cc: Subject: Re: c/10360: __alignof__(double) answer 8 Date: 09 Apr 2003 23:59:58 +0200 rth> Synopsis: __alignof__(double) answer 8 rth> State-Changed-From-To: open->closed rth> State-Changed-By: rth rth> State-Changed-When: Wed Apr 9 17:29:53 2003 rth> State-Changed-Why: rth> Not a bug. __alignof__ returns the *preferred* alignment. rth> You're seeing other SVr4 ABI rules concerning structures. Thus, why gcc does not align fields with respect to this *preferred* alignment? How can I compute the address of a field in a record? I need to do this uniformly on all the types. That means I cannot use the trick : offset = (char *)&foo.bla - (char *)&foo. or the "offsetof" macro. because I don't know, statically, the type of the record from which I need to compute offsets. The type information comes from the @encode directive of objective-C (ie: it's a characters string that describe a type). Actually, we are using "objc_alignof_type" (from the objective-c API) and we expect it to return the alignment used by the compiler (and not the *preferred* alignment). Thanks for your help, Frederic De Jaeger