[clang] [compiler-rt] [libcxx] [llvm] [clang] Warn about memset/memcpy to NonTriviallyCopyable types (PR #111434)

Nikolas Klauser via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 9 01:21:10 PDT 2024


================
@@ -102,7 +102,7 @@ struct __aliasing_iterator_wrapper {
 
     _LIBCPP_HIDE_FROM_ABI _Alias operator*() const _NOEXCEPT {
       _Alias __val;
-      __builtin_memcpy(&__val, std::__to_address(__base_), sizeof(value_type));
+      __builtin_memcpy(&__val, reinterpret_cast<void*>(std::__to_address(__base_)), sizeof(value_type));
----------------
philnik777 wrote:

IMO this is a false-positive. This inspects the non-trivial object and implicitly starts the lifetime of `_Alias`, which is perfectly defined behaviour.

https://github.com/llvm/llvm-project/pull/111434


More information about the llvm-commits mailing list