[Bug c/30368] wrong result
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Jan 5 20:13:00 GMT 2007
------- Comment #3 from pinskia at gcc dot gnu dot org 2007-01-05 20:13 -------
> anther, consider an example definite[2] of 'offsetof', if you think
> that is undefined, it's almost impossible to give a definite of
> offsetof.
> #define offsetof(TYPE,MEMBER) ((size_t)&((TYPE*)0)->MEMBER)
The C standard still says that is undefined. See 6.5.3.2/4.
Also GCC has a builtin for offsetof to get around the undefinedness of the
above.
You can also define offsetof like:
#define offsetof(TYPE,MEMBER) (((size_t)&((TYPE*)128)->MEMBER) - 128)
Which gets around the undefined issue.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30368
More information about the Gcc-bugs
mailing list