c/10360: __alignof__(double) answer 8
Frederic De Jaeger
dejaeger@free.fr
Wed Apr 9 22:00:00 GMT 2003
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-bugs
mailing list