読書GCC 6 リリースシリーズの変更、新機能、修正私はこの新しいオプションがとても興味深いと思いました-Wmisleading-indentation
。
-Wmisleading-indentation warns about places where the indentation of the code
gives a misleading idea of the block structure of the code to a human reader.
For example, given CVE-2014-1266:
sslKeyExchange.c: In function 'SSLVerifySignedServerKeyExchange':
sslKeyExchange.c:631:8: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation]
goto fail;
^~~~
sslKeyExchange.c:629:4: note: ...this 'if' clause, but it is not
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
^~
tab space
gcc
インデントが4、8、または何でも可能なので、インデントが「不明」の場合、オプションが誤解を招くインデントを確実に識別できるかどうか疑問に思います。
答え1
カント。開発者明確に説明してくださいキャプチャするための一連の経験的方法に基づいています。最大あまりにも多くの騒音なしに誤解を招くインデントです。他のコンパイラ警告と同様に、偽の肯定と偽の否定が発生する可能性があります。許す現在のGCCはほとんどのコードで緩んで-Wall
鳴ります。