c/10360: __alignof__(double) answer 8

Frederic De Jaeger dejaeger@free.fr
Wed Apr 9 22:06:00 GMT 2003


The following reply was made to PR c/10360; it has been noted by GNATS.

From: Frederic De Jaeger <dejaeger@free.fr>
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



More information about the Gcc-prs mailing list