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.

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
cfe-commits mailing list

Reply via email to