https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98323
--- Comment #9 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- The original intent in the C standard was definitely to allow at least some cases of subobjects; the May 20, 1988 list of changes in the third public review draft of C89 has as item 10 "The offsetof macro has been generalized to allow more than just a simple identifier as its second argument.".