devin.jeanpierre added a comment. Sorry, I missed your other comments. Let me know if there's anything else I didn't address.
================ Comment at: clang/test/SemaCXX/attr-trivial-abi.cpp:146 +#ifdef _WIN32 +static_assert(!__is_trivially_relocatable(CopyDeleted), ""); +#else ---------------- Quuxplusone wrote: > I think you meant `s/CopyDeleted/S20/` here. Ugh, copy-paste. Thanks, done. ================ Comment at: clang/test/SemaCXX/type-traits.cpp:2862 +static_assert(__is_trivially_relocatable(int), ""); +static_assert(__is_trivially_relocatable(int[]), ""); + ---------------- Quuxplusone wrote: > It's mildly surprising that an incomplete type can be trivially relocatable; > but it doesn't really matter, since nobody can be depending on this answer. > (`int[]` is not movable or destructible, so it's not relocatable — never mind > //trivially// relocatable.) I think it is consistent with the other type traits in C++ -- for example, this assert would also pass: ``` static_assert(std::is_trivially_copyable_v<int[]>, ""); ``` The important thing is that this line fails to compile: ``` struct Incomplete; bool unused = __is_trivially_relocatable(Incomplete); ``` ================ Comment at: clang/test/SemaObjCXX/objc-weak-type-traits.mm:213-214 +// __is_trivially_relocatable +TRAIT_IS_TRUE(__is_trivially_relocatable, __strong id); +TRAIT_IS_FALSE(__is_trivially_relocatable, __weak id); +TRAIT_IS_TRUE(__is_trivially_relocatable, __autoreleasing id); ---------------- Quuxplusone wrote: > IIUC (which I probably don't): Both `__strong id` and `__weak id` //are// > trivially relocatable in the p1144 sense, but only `__strong id` is > trivial-for-purposes-of-ABI, and that's why only `__strong id` is being > caught here. Yes/no? `__weak` can't be trivially relocatable in any proposal, because their address is registered in a runtime table, so that they can be nulled out when the object is deleted. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D114732/new/ https://reviews.llvm.org/D114732 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits