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

Если вы используете типичный компилятор, можно столкнуться с этой проблемой. Для получения дополнительной информации смотрите Compiler (-compiler).

Проблема

Анализ останавливает с сообщением об ошибке, связанным с non-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);

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