What are the pointer aliasing rules in D?

Ali Çehreli acehreli at yahoo.com
Thu Mar 6 16:11:37 UTC 2025


On 3/6/25 6:34 AM, Paul Backus wrote:

 > are allowed to refer to the same memory location. However, there are
 > still cases where *dereferencing* those pointers can lead to undefined
 > behavior.

This topic came up among colleagues recently. I think such restrictions 
come from CPU architectures where, as I remember reading on C++ forums 
years ago, the mere act of loading a misaligned pointer value into a 
pointer register would cause an error (trap?).

I cast any odd pointer value to any sized integer (and in one case to a 
struct pointer) from a void* buffer area and it works on the Intel CPU 
that I am working on.

Will this work on all or most modern CPUs?

Ali



More information about the Digitalmars-d-learn mailing list