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