theraven requested changes to this revision. theraven added a comment. This revision now requires changes to proceed.
I'm broadly in favour of this change, but with the GNUstep ABIs this is an ABI-breaking change and so should not be on by default. The type encoding leaks into the ABI in two ways: - Dispatch is dependent on type, which avoids some stack corruption bugs on NeXT-style runtimes. This means that the types of the selector in the caller and the selector in the method definition must match. I don't see a problem with turning this change off for this specific case, because it's incredibly rare to pass complex C++ template types as arguments to Objective-C methods. - The variable that contains the offset of ivars includes the type encoding, so that changing the type of a public ivar breaks linkage, rather than just subtly corrupting data later. We could leave this change on for any `@private` or `@package` ivars, but changing the type encoding for public ivars will break code linking with existing frameworks. I'm quite happy with this to be opt-in for non-Apple runtimes and opt-out for Apple runtimes. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D96816/new/ https://reviews.llvm.org/D96816 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits