汎用コンパイラに関連する Polyspace コンパイル エラーの修正
汎用コンパイラを使用すると、この問題が発生する可能性があります。詳細は、コンパイラ (-compiler)
を参照してください。
問題
解析が停止し、非 ANSI® C キーワード (data
など) や属性 (__attribute__((weak))
など) に関するエラー メッセージが表示されます。
キーワードの位置によって、エラー メッセージは異なる可能性があります。たとえば、次の行は expected a ";"
というエラー メッセージを表示します。
data int tab[10];
原因
汎用 Polyspace® コンパイラは ANSI C キーワードのみをサポートします。言語拡張を使用する場合、汎用コンパイラはそれを認識せず、キーワードを通常の識別子として扱います。
解決法
オプション [コンパイラ] (-compiler)
を使用して、コンパイラを指定します。
使用しているコンパイラが直接サポートされていないか、サポートされているコンパイラをベースにしていない場合は、汎用コンパイラを使用できます。コンパイル エラーを回避するには、以下を行います。
キーワードがメモリ モデル化に関連する場合は、そのキーワードを前処理済みコードから削除します。たとえば、
data
キーワードを削除するには、オプション[プリプロセッサ定義] (-D)
にdata=
を入力します。キーワードが属性に関連する場合、前処理済みのコードから属性を削除します。オプション
[プリプロセッサ定義] (-D)
に__attribute__(x)=
を入力します。コードに次の行が含まれていて、
属性を削除する場合、その行は解析で次のように読み取られます。void __attribute__ ((weak)) func(void);
void func(void);
これらの回避策を使用する場合、ソース コードは変更されません。