I’ll start with a quick review of the strict aliasing rules in C and C++ and then present some less well-known material. Compiler optimizations are often shot down by the potential for pointers to be aliases. For example, although we might naively expect a compiler to optimize this function to return zero, that cannot happen because x and y might refer to the same location: int foo(int *x, int *y)