[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: c/10360: __alignof__(double) answer 8
From: |
Frederic De Jaeger |
Subject: |
Re: c/10360: __alignof__(double) answer 8 |
Date: |
09 Apr 2003 23:59:58 +0200 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
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