メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

MISRA C:2012 Rule 1.2

Language extensions should not be used

説明

ルール定義

Language extensions should not be used 1 .

根拠

プログラムに言語拡張が使用されている場合、移植性は低くなります。言語拡張をドキュメント化する場合でも、ドキュメンテーションではすべての状況における動作が記述されない可能性があります。

Polyspace 実装

ルール チェッカーは、解析で使用されている C 標準のバージョンに応じて、これらの言語拡張にフラグを設定します。C 標準バージョン (-c-version) を参照してください。

  • C90:

    • 定数を含む long long int

    • long double

    • inline キーワード

    • _Bool キーワード

    • 16 進浮動小数点定数

    • 指示付きの初期化子

    • ローカル ラベル宣言

    • typeof 演算子

    • 共用体へのキャスト

    • 複合リテラル

    • 式内のステートメントと宣言

    • __func__ 定義済み識別子

    • _Pragma 前処理演算子

    • 可変引数リストを持つマクロ

    • 関数 asm

    • 無名共用体

    • 空の struct

  • C99:

    • short long int

    • ローカル ラベル宣言

    • typeof 演算子

    • 共用体へのキャスト

    • 式内のステートメントと宣言

    • 関数 asm

    • 無名共用体

    • 空の struct

トラブルシューティング

ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。

チェック情報

グループ: 標準 C 環境
カテゴリ: 推奨
AGC カテゴリ: 推奨

バージョン履歴

R2014b で導入

すべて展開する


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.