xazax.hun added a comment. In D72097#1801777 <https://reviews.llvm.org/D72097#1801777>, @gribozavr2 wrote:
> Could you provide a more fleshed out example of a case where it is useful? Sure! The `std::any` could be one example (`std::variant` is similar, but ultimately, we migh want to be able to enumerate multiple types in that case rather than just using void). The specific example I found was an allocator: https://fuchsia-review.googlesource.com/c/fuchsia/+/340159/3/zircon/kernel/lib/fbl/include/fbl/arena.h#25 This might not be super important as it might be unlikely that we will ever find a problem where an arena is destroyed before an object allocated there is dereferenced, but still, it is good to cover this use case as well. > Could you update the documentation for the attribute? I'm forgetting if > there's a spec for this attribute -- is this extension part of that spec? `void` is currently not mentioned in the documentation, but adding an example and the interpretation would help indeed, thanks! > Do you foresee any issues or further special cases? For example, IIRC, > 'operator*' is required to return DerefType. I have a hard time understanding > how one would define 'operator*' in such an owner. I think those types that have `void` as deref types are unlikely to implement `operator*`. There might be some skeletons but I am not aware of anything at the moment. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D72097/new/ https://reviews.llvm.org/D72097 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits