ブログ更新。
— ずみっくす@あつまれCIサービス (@srz_zumix) September 25, 2020
ブログズミ: [C++] 警告のコンパイラー対応表を作り始めましたhttps://t.co/5fJRl9ChDw#cpp #未解決
[C++] GCC/Clang/VisualStudio の警告をまとめているので紹介|srz_zumix https://t.co/JvYEVEGjX4 #zenn
— ずみっくす@あつまれCIサービス (@srz_zumix) September 25, 2020
より広く見て欲しいので Zenn にも書いた
こちらで紹介した C++ 警告のまとめプロジェクトの作成にあたって、自作テスティングフレームワークの iutest で clang のすべての警告を有効にするオプション「-Weverything」を使って得た知見をまとめます。
-Wdouble-promotion
double 型テストしてたつもりが float になってたのに気づきました。
-Wextra-semi
なぜか二重についてた ; セミコロンに気づきました。
-Wnonportable-system-include-path
Windows 系のヘッダーが全部小文字だったのを修正しました。
-Wshadow-all
マクロ内で使っていた変数名が b とか info とかかぶりやすい名前だったのを修正しました。
-Wdocumentation-unknown-command
こちらはワークアラウンドの紹介になりますが、 Clang は Doxygen のコメントに対しての警告がありますが、対応していない Doxygen コマンドが存在します。
Diagnostic flags in Clang — Clang 12 documentation
その場合、コンパイルオプションに -fcomment-block-commands=private,internal,retval のようにコマンドを教えてあげることができます。
ただし、引数のない private や internal コマンドは別の -Wdocumentation 警告がでるようになってしまいます。
../include/internal/iutest_time.hpp:47:13: error: empty paragraph passed to '@internal' command [-Werror,-Wdocumentation] * @internal ~~~~~~~~~^
こちらの回避方法はまだ見つけてないので、見つけたら追記します。
以上。
0 件のコメント:
コメントを投稿