exponenta event banner

Ошибки, связанные с общим компилятором

Эта проблема возникает при использовании универсального компилятора. Дополнительные сведения см. в разделе Compiler (-compiler).

Проблема

Анализ останавливается сообщением об ошибке, связанной с ключевым словом, отличным от ANSI ® C, например :data или такие атрибуты, как __attribute__((weak)).

В зависимости от расположения ключевого слова, сообщение об ошибке может различаться. Например, эта строка вызывает сообщение об ошибке: expected a ";".

data int tab[10];

Причина

Универсальный компилятор Polyspace ® поддерживает только ключевые слова ANSI C. Если используется расширение языка, универсальный компилятор не распознает его и рассматривает ключевое слово как обычный идентификатор.

Решение

Укажите компилятор с помощью опции Compiler (-compiler).

Если компилятор не поддерживается напрямую или не основан на поддерживаемом компиляторе, можно использовать универсальный компилятор. Чтобы обойти ошибки компиляции:

  • Если ключевое слово связано с моделированием памяти, удалите его из предварительно обработанного кода. Например, чтобы удалить data ключевое слово, введите data= для опции Preprocessor definitions (-D).

  • Если ключевое слово связано с атрибутом, удалите атрибуты из предварительно обработанного кода. Войти __attribute__(x)= для опции Preprocessor definitions (-D).

    Если код содержит следующую строку:

    void __attribute__ ((weak)) func(void);
    При удалении атрибутов анализ считывает строку следующим образом:
    void func(void);

При использовании этих обходных путей исходный код не изменяется.