2017-03-22 1 views
4

でブールへの変換文字列リテラルのためにそこに警告です、私はCPPファイルに以下の構築物(書き換えスニペット)を見つけはかなり大規模なコードベースでのgcc

int main() 
{ 
    bool b; 
    //... some code ...; 
    b = "False" 
} 

これは明らかに完全に法的なコードですが、意図的ではありません。簡単に修正できますが、2014年以降は誰も気づかずに存在していますので、明らかに見つけるのは簡単ではありません。

これについてgccに警告することはできますか?

+0

g ++ 7もclang ++ 5も '-Wall -Wextra -Wpedantic'で警告しません。ワオ。 –

+0

fyi: 'bool b {" False "};'もコンパイルされます。しかし 'char const pc [] =" false "; bool b {pc};警告を出します:_ "警告:pcのアドレスは常に「true」と評価されます[-Waddress]" _ –

+0

[ここ](https://gcc.gnu.org) /onlinedocs/gcc/Warning-Options.html)何も見つかりません。 – NathanOliver

答えて

1

どちらG ++ 7打ち鳴らす++ 5は、-Wall -Wextra -Wpedanticと警告します。

Clangには、間違いをキャッチする警告がありますが、gccにはそのような警告はありません。-Wstring-conversionという警告があります。私は簡単にthe gcc warning documentation pageを見て、間違いをキャッチするものは見つけられませんでした。私はgccのバグトラッカーに機能提案のための報告書を提出してきましたlive wandbox example


enter image description here

#80151

関連する問題