C and C++


LANG.COMM.CPP : C言語でのC++形式コメント

要旨

C90でコンパイルされているソースファイルが、C++の形式のコメント(//)を含んでいます。

プロパティ

クラス名 C++ Comment in C
日本語クラス名 C言語でのC++形式コメント
クラス分類 スタイル (style)
ニーモニック LANG.COMM.CPP
カテゴリー
MisraC2023 MisraC2023:1.2 Language extensions should not be used
Misra2012 Misra2012:1.2 Language extensions should not be used
Misra2004 Misra2004:1.1 All code shall conform to ISO/IEC 9899:1990 "Programming languages C", amended and corrected by ISO/IEC 9899/COR1:1995, ISO/IEC 9899/AMD1:1995, and ISO/IEC 9899/COR2:1996
  Misra2004:2.2 Source code shall only use /* ... */ style comments
JPL JPL:1 Do not stray outside the language definition.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="C++ Comment in C"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

Many compilers will fail with an error if they encounter a C++-style comment while compiling in C90 mode. If you are using such a compiler you will generally detect and resolve bugs of this class at compilation time, before the CodeSonar analysis runs.

/* LANG.COMM.CPP.c */

static int i=5; // C++-style comment about i
                /* 'C++ Comment in C' warning issued on previous line if compiled as C90 */
/* LANG.COMM.CPP.cpp */

static int i=5; // C++-style comment about i
                /* no 'C++ Comment in C' warning on previous line if compiled as C++ */

関連のある設定ファイルパラメータ

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。