-asm-begin -asm-end
コンパイラ固有の asm
関数の解析からの除外
構文
-asm-begin "
mark1[,mark2,...]
" -asm-end "mark1[,mark2,...]
"
説明
-asm-begin "
は、コンパイラ固有のアセンブリ言語のソース コード関数を解析から除外します。これら 2 つのオプションは一緒に使用しなければなりません。mark1[,mark2,...]
" -asm-end "mark1[,mark2,...]
"
Polyspace® は、ほとんどのインライン アセンブラーを既定で認識します。このオプションは、アセンブリ コードの開始が原因でコンパイル エラーが発生する場合にのみ使用してください。詳細については、アセンブリ コードに関する Code Prover の仮定を参照してください。
問題となるコード ブロックを 2 つの #pragma
命令によってマークします。1 つはアセンブリ コードの最初に、もう 1 つは最後に置きます。コマンドの使用に際しては、-asm-begin
のマークの順序が -asm-end
のマークの順序と同じになるようにします。
ユーザー インターフェイス (Polyspace デスクトップ製品のみ) では、[構成] ペインの [その他] フィールドにこのオプションを入力します。Other
を参照してください。
例
コードのブロックを #pragma start1
および #pragma end1
で区切ります。これらの名前は、それぞれのオプションにおいて同じ順序でなければなりません。次のいずれかとなります。
-asm-begin "start1" -asm-end "end1"
-asm-begin "mark1,...markN,start1" -asm-end "mark1,...markN,end1"
次の例では、2 つの関数 foo_1
および foo_2
を除外するようマークします。
コード:
#pragma asm_begin_foo int foo(void) { /* asm code to be ignored by Polyspace */ } #pragma asm_end_foo #pragma asm_begin_bar void bar(void) { /* asm code to be ignored by Polyspace */ } #pragma asm_end_bar
Bug Finder:
polyspace-bug-finder -lang c -asm-begin "asm_begin_foo,asm_begin_bar" -asm-end "asm_end_foo,asm_end_bar"
Code Prover:
polyspace-code-prover -lang c -asm-begin "asm_begin_foo,asm_begin_bar" -asm-end "asm_end_foo,asm_end_bar"
Bug Finder Server:
polyspace-bug-finder-server -lang c -asm-begin "asm_begin_foo,asm_begin_bar" -asm-end "asm_end_foo,asm_end_bar"
Code Prover Server:
polyspace-code-prover-server -lang c -asm-begin "asm_begin_foo,asm_begin_bar" -asm-end "asm_end_foo,asm_end_bar"
asm_begin_foo
と asm_begin_bar
は、無視するアセンブリ ソース コード セクションの開始をマークします。 asm_end_foo
と asm_end_bar
はこれら各セクションの終了をマークします。
ヒント
IDE で Polyspace as You Code の拡張機能を使用する場合は、このオプションを解析オプション ファイルに入力します。オプション ファイルを参照してください。