C and C++


LANG.FUNCS.PROT : 不完全な関数プロトタイプ

要旨

関数のプロトタイプ宣言が以下のいずれかに該当します。

プロパティ

クラス名 Incomplete Function Prototype
日本語クラス名 不完全な関数プロトタイプ
クラス分類 スタイル (style)
ニーモニック LANG.FUNCS.PROT
カテゴリー
MisraC2023 MisraC2023:1.5 Obsolescent language features shall not be used
  MisraC2023:8.2 Function types shall be in prototype form with named parameters
Misra2012 Misra2012:1.5 Obsolescent language features shall not be used
  Misra2012:8.2 Function types shall be in prototype form with named parameters
Misra2004 Misra2004:8.1 Functions shall have prototype declarations and the prototype shall be visible at both the function definition and call
  Misra2004:16.3 Identifiers shall be given for all of the parameters in a function prototype declaration
  Misra2004:16.5 Functions with no parameters shall be declared and defined with the parameter list void
  Misra2004:16.6 The number of arguments passed to a function shall match the number of parameters
AUTOSARC++14 AUTOSARC++14:A1-1-1 All code shall conform to ISO/IEC 14882:2014 - Programming Language C++ and shall not use deprecated features.
MisraC++2023 MisraC++2023:4.1.2 Deprecated features should not be used
CERT-C CERT-C:DCL07-C Include the appropriate type information in function declarators
  CERT-C:DCL20-C Explicitly specify void when a function accepts no arguments
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Incomplete Function Prototype"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

/* beginning of file */

void prot_ok(void);                              /* valid prototype form */

void prot_empty();      /* 'Incomplete Function Prototype' warning issued here
                         * - empty parameter list. */

void prot_noname(int);                           /* valid prototype form */

void prot_notype(x);    /* 'Incomplete Function Prototype' warning issued here
                         * - parameter type is missing. */

void func_ok(int x){}                            /* valid prototype form */

void func_notype(x){}   /* 'Incomplete Function Prototype' warning issued here
                         * - parameter type is missing. */

void caller(int x){                              /* valid prototype form */
    func_ok(x);                                  /* func_ok() prototype is visible */
    void func_notype(x);                         /* func_notype() prototype is visible */
    mystery_func(x);    /* 'Incomplete Function Prototype' warning issued here
                        * - no visible prototype for mystery_func()  */
}
/* end of file */

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

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