Ethan Dicks wrote:
I have used the following in embedded code to
tight-loop the CPU in
certain circumstances, intentionally requiring a reset of the
processor to escape...
for (;;)
;
I suppose a good optimizer would know that you really meant to do that
and should produce something resembling the following
$1: JMP $1
...but I certainly wouldn't want that statement optimized out entirely.
If the compiler optimized that out entirely, the compiler is defective.
Optimizations are not supposed to change the semantics of well-formed code.
On the other hand, the compiler is free to optimize
int i;
for (i = 0; i < 100; i++)
;
into
int i;
i = 100;
Since that does not change the semantics.
Eric