MaskRay wrote: Thanks for the comment.
> I think the choice we're making here is probably worth it, though we should > probably document it better. I think you can remove the alignment assumption > by explicitly casting the operands to char* before passing them to memcpy; if > you can't, I'd be more worried that we're doing something problematic here. Yes. The correct implementation correctly drops the alignment check on the dst parameter for `memcpy((char *)a, b, sz);` > Also, it'd seem like a good idea to make the sanitizer message as clear as > possible for this case, because Clang's behavior here is surprising. @zygoloid Is reusing the message for regular stores clear (current behavior) enough? ``` // CHECK-MEMCPY-STORE: misaligned.cpp:[[#@LINE+4]]{{(:12)?}}: runtime error: store to misaligned address [[PTR:0x[0-9a-f]*]] for type 'int *', which requires 4 byte alignment ``` https://github.com/llvm/llvm-project/pull/67766 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits