I am quite sure Jonas will to some extend support my explanation.
The difficulty on this forum is always that we have users (often extremely good programmers!) and users that are third grade computer scientists (like me)
Funny thing is you did not read that answer carefully:
"The reason the need for volatile on embedded systems is far less in FPC,
is the existence of the "absolute" keyword. In C, you have to declare
all of those memory mapped registers as volatile pointers, because
otherwise things will get optimised wrongly. In FPC, you can declare
them as variables that are "absolute" at some address, and the compiler
will never optimise their accesses. Only if you would take the address
of one of these variables and store it in a pointer, you would need
"volatile" in this context.
"
Dunno what you think, but..... <grin>
Probably overlooked assignable typed constants and mentioned absolute. All covered. < very, very, grumpy
>