Как cbmc работает с заголовком c?

Если у меня есть ac-файл, содержащий более одной функции, и я хочу запустить cbmc с z3 solver для предварительно обработанной версии программы (используя gcc), а в разделе заголовка есть несколько других файлов (c-файлов). Как cbmc увидит эти файлы? потому что я попытался запустить его, и он выдает некоторые ошибки о некоторых переменных, которые не были объявлены, где они фактически объявлены в одном из заголовочных файлов.

Кто-нибудь может объяснить, как это работает?

ОБНОВИТЬ:

int test(int x) {
for (int i = 2; i < sqrt(x); i++) {
    if (x%i == 0)
        return 0;
}

Прежде всего, я предварительно обработал программу, используя gcc

Затем разберите программу по pycparser

затем инструмент (добавьте оператор печати после 4, чтобы увидеть значение х)

Затем я запустил cbmc для инструментированной версии файла и получил эту ошибку: функция `sqrt'не объявлена

1 ответ

Вы должны включить в проект все файлы, на которые ссылаются файлы заголовков. Недостаточно включить только правильный заголовок (и), если связанный файл.c недоступен.


Ваш пример кода ДОЛЖЕН иметь следующие строки:

    else
    {
        return 1;
    }
}
Другие вопросы по тегам