MISRA C++:2023 Rule 21.10.1
説明
ルール定義
The features of <cstdarg> shall not be used. 1
根拠
va_list、va_arg、va_start、va_end および va_copy の使用はルールにより禁止されています。
これらの機能は C++ 標準で動作が定義されていない方法で使用できます。次に例を示します。
va_startを関数内で呼び出すが、関数ブロックの終了前に対応するva_endを呼び出さない。va_list型の同じ変数に対し、異なる関数内でva_argを呼び出す。va_argが構文type va_arg (va_list ap, type)をもつ。apから取得する引数の実際の型と互換性がないtypeでva_argを呼び出す。
Polyspace 実装
チェッカーは、<sstdarg> に含まれる va_list、va_arg、va_start、va_end、va_copy のいずれかの関数が使用されている場合に違反を報告します。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: Language Support Library |
| カテゴリ: Required |
バージョン履歴
R2024b で導入
1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:
MISRA C:2004
MISRA C:2012
MISRA C:2023
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.