Mail Archives: djgpp/2002/09/18/09:07:24.3
Hans-Bernhard Broeker <broeker AT physik DOT rwth-aachen DOT de> wrote in
news:alvrup$25r$1 AT nets3 DOT rz DOT RWTH-Aachen DOT DE
>> int main() { for (long long int i=0; i<500000000; i++) ; return 0; }
>> why this dead-loop is not removed ?
> Because the GCC people explicitly decided to not do that, IIRC. The
> distinction being that a loop explicitly coded with an empty body is
> probably a timing-critical delay loop, and as such should be left
> alone. If you put something into the loop, and try again, you just
> might see what you expected.
int a;
for (long long int i=0; i<500000000; i++) a=0;
gives same result :-/
IMHO time-critical loops should be marked as :
for (volatile long long int i=0; i<500000000; i++) ;
^^^^^^^^
this will never be optimized. And all dead codes should be deleted (this
loop is not due to volatile counter)
Meybe I should report somwhere that 'bug' ? I use gcc 2.95
--
Rafał 'Raf256' Maj
http://www.raf256.com
- Raw text -