メインコンテンツ

汎用コンパイラに関連する 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);

これらの回避策を使用する場合、ソース コードは変更されません。