C and C++


LANG.ASM.PRAGMA : #pragma asmを用いたアセンブラ命令の記述

要旨

アセンブラ命令の領域が #pragma asmを用いて記述されています。

プロパティ

クラス名 Assembly Pragma
日本語クラス名 #pragma asmを用いたアセンブラ命令の記述
クラス分類 スタイル (style)
ニーモニック LANG.ASM.PRAGMA
カテゴリー
AUTOSARC++14 AUTOSARC++14:M7-4-2 Assembler instructions shall only be introduced using the asm declaration.
MisraC++2008 MisraC++2008:7-4-2 Assembler instructions shall only be introduced using the asm declaration.
MisraC++2023 MisraC++2023:10.4.1 The asm declaration shall not be used
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。 注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。 They also require front end option --cs_ext_pragma_asm_endasm.
RETAIN_UNNORMALIZED_C_AST = Yes
EDG_FRONTEND_OPTIONS_PREPEND += --cs_ext_pragma_asm_endasm
WARNING_FILTER += allow class="Assembly Pragma"

int lang_asm_pragma(int a){
#pragma asm "NOP" /* 'Assembly Pragma' warning issued here */
#pragma endasm
   return a;
}

int using_asm(int a){
   asm("NOP");    /* ok (with respect to this class)*/
                  /* but will trigger 'Inline Assembly Code' and 'Mixed Assembly and Code' if enabled */
   return a;
}

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

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