volatile int blackhole;
blackhole = 1;
const int X = blackhole;
const int Y = blackhole;
Compiler is forbidden to assume that X == 1
would be true. It’s also forbidden to assume that X == Y
. const
just means the address and/or the data at the address is read only. const volatile int* const hwreg;
-> “read only volatile value at read only address hwreg”. Compiler can assume the hwreg
address won’t magically change, but can’t assume the value read from that address won’t.
name your function as
malloc()
and see to world burn and generate bugs at factorial rate.