On 20 Mar 2018, at 15:36, Ivan Vučica <i...@vucica.net> wrote: > > On Tue 20 Mar 2018 at 14:51 David Chisnall <gnus...@theravensnest.org> wrote: >> Hello the list, >> >> I am working on the new ObjC ABI and one of the changes I have made is to >> include the type encoding in the ivar offset variable. This protects >> against type confusion by causing linker failures when an instance variable >> is referenced with the wrong type (which can happen if it’s in a library >> that changes and someone forgets to bump the SONAME). >> >> Unfortunately, I have found that -base doesn’t build because it uses some >> complex preprocessor logic to change the type of NSXMLNode’s node ivar >> depending on which subclass you are using. This is quite dangerous because, >> although the types have a common prefix, the version used in the root is not >> a prefix of the others and so it’s possible for type confusion if someone >> modifies NSXMLNode without realising how the subclasses use this. >> >> Does anyone object if I commit a patch that turns this into a union? >> >> David >> > Please bump the SONAME while at it :)
Why? It’s an private and hidden ivar. In the fragile ABI, it’s in the secret ‘internal’ structure and not ABI-visible, in the non-fragile ABI it’s in a class extension and so not externally visible. David _______________________________________________ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev