Is `void **` an exception to strict aliasing rules?

Basically, is this code legal when strict aliasing is enabled? void f(int *pi) { void **pv = (void **) π *pv = NULL; } Here, we access an object of one type (int*) through a pointer of another type (pointer to void *), so I would say that it is indeed a strict-aliasing violation. But… Read More Is `void **` an exception to strict aliasing rules?