es hat mich eben wieder mal eine Stunde gekostet, dass ich an einer
etwas unübersichtlichen Stelle ein Semikolon hinter eine if-Anweisung
gesetzt habe. Ich habe -Wall aktiviert, aber der Kompiler warnt nicht.
Gibt es eine Einstellung um das zu aktivieren?
Gruß
Andreas
--
Technical Blog <http://andreasvolz.wordpress.com/
'-W' bringt bei mir eine entsprechende Warnung.
Stefan
> Hallo,
>
> es hat mich eben wieder mal eine Stunde gekostet, dass ich an einer
> etwas unübersichtlichen Stelle ein Semikolon hinter eine if-Anweisung
> gesetzt habe. Ich habe -Wall aktiviert, aber der Kompiler warnt nicht.
> Gibt es eine Einstellung um das zu aktivieren?
Ist verhältnismäßig neu als Warnung im Compiler (4.2.wasweißich oder
so).
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
So neu nun auch wieder nicht.
$ cat sem.c
void foo(int* i)
{
if (i);
++*i;
}
$ gcc -W -c sem.c
sem.c: In function `foo':
sem.c:3: warning: empty body in an if-statement
$ gcc --version
gcc (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
Copyright (C) 2004 Free Software Foundation, Inc.
[...]
Wie ich allerdings gerade sehe, gilt das nur für C, in C++ warnt diese
Version nicht.
Stefan
<URL:http://gcc.gnu.org/gcc-4.2/changes.html>
listet in der Tat unter "C++"
-Wextra will produce warnings for if statements with a semicolon as
the only body, to catch code like:
if (a);
return 1;
return 0;
To suppress the warning in valid cases, use { } instead.
Ob -Wextra in -Wall enthalten ist und ob das jetzt unter denselben
Umständen wie bei C anwarnt -- keine Ahnung.
<http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>:
# -Wextra
# This enables some extra warning flags that are not enabled by
# -Wall. (This option used to be called -W. The older name is
# still supported, but the newer name is more descriptive.)
Ist zwar irgendwie nicht ganz intuitiv ("noch mehr als 'alles'?"), aber
man gewöhnt sich ja an alles.
Stefan
> David Kastrup wrote:
>> Stefan Reuther <stefa...@arcor.de> writes:
>>>Wie ich allerdings gerade sehe, gilt das nur für C, in C++ warnt diese
>>>Version nicht.
>>
>> <URL:http://gcc.gnu.org/gcc-4.2/changes.html>
>>
>> listet in der Tat unter "C++"
> [...]
>> Ob -Wextra in -Wall enthalten ist und ob das jetzt unter denselben
>> Umständen wie bei C anwarnt -- keine Ahnung.
>
> <http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>:
> # -Wextra
> # This enables some extra warning flags that are not enabled by
> # -Wall. (This option used to be called -W. The older name is
> # still supported, but the newer name is more descriptive.)
Also wo man früher »-Wall -W« schrieb, schreibt man jetzt »-Wall
-Wextra«?
mfg, simon .... l
Genau. Wobei du vermutlich auch bei '-Wall -W' bleiben kannst, wird ja
noch unterstützt und von "deprecated" steht da nix.
Stefan