This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: c/10360: __alignof__(double) answer 8
- From: Richard Henderson <rth at redhat dot com>
- To: Frederic De Jaeger <dejaeger at free dot fr>
- Cc: rth at gcc dot gnu dot org, discuss-gnustep at gnu dot org, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, nobody at gcc dot gnu dot org, richard at brainstorm dot co dot uk, thoran at free dot fr, gcc-gnats at gcc dot gnu dot org
- Date: Wed, 9 Apr 2003 15:40:39 -0700
- Subject: Re: c/10360: __alignof__(double) answer 8
- References: <20030409172953.1886.qmail@sources.redhat.com> <87znmzjpr5.fsf@free.fr>
On Wed, Apr 09, 2003 at 11:59:58PM +0200, Frederic De Jaeger wrote:
> Thus, why gcc does not align fields with respect to this *preferred*
> alignment?
Because the ABI says not to.
> How can I compute the address of a field in a record?
offsetof.
> 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.
Tough luck then.
> ... and we expect it to return the alignment used by the compiler (and not
> the *preferred* alignment).
A meaningless number. Because "the alignment used by the compiler"
is going to depend on the context in which it is used.
r~