Fragen? Antworten! Siehe auch: Alternativlos
New command line options -fstrict-overflow
and -Wstrict-overflow
have been added. -fstrict-overflow
tells the compiler that it may assume that the program follows the strict signed overflow semantics permitted for the language: for C and C++ this means that the compiler may assume that signed overflow does not occur. For example, a loop like for (i = 1; i > 0; i *= 2)
is presumably intended to continue looping until i
overflows. With -fstrict-overflow
, the compiler may assume that signed overflow will not occur, and transform this into an infinite loop. -fstrict-overflow
is turned on by default at -O2
, and may be disabled via -fno-strict-overflow
. The -Wstrict-overflow
option may be used to warn about cases where the compiler assumes that signed overflow will not occur. It takes five different levels: -Wstrict-overflow=1
to 5
. See the documentation for details. -Wstrict-overflow=1
is enabled by -Wall
.
Fassen wir zusammen: es ist Scheiße und stinkt, sie wissen es, sie fixen es, aber nur wenn man ohne Optimizer kompiliert. D.h. mit Optimizer verhält sich der Code anders als ohne Optimizer. Ist das nicht prima? Genau was man von einem Optimizer erwarten würde. Herzlichen Glückwunsch, liebes gcc-Team. Ist nicht so einfach, sich derartig ins Abseits zu schießen. Hut ab.