MaskRay wrote:

> @zygoloid Thanks for the explanation! I wasn't aware this fell under 
> unspecified behavior. It's weird that alignment information can survive a 
> `void *` cast, but it does make some sense.

Yes, `(void *)x` decreases the alignment requirement to 1 byte like `(char *)x`.

> What seems worrying here is that apparently GCC and Clang do not agree on 
> semantics in this case 
> ([godbolt.org/z/1r9df5a4a](https://godbolt.org/z/1r9df5a4a)). GCC does not 
> assume that the pointers are aligned. The perils of unspecified behavior....

Yes...

I am out of town and will merge this PR later.

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

Reply via email to