Splint Barfs On __Thread, который является частью C99
-
01-10-2019 - |
Вопрос
Бегущий шин
matt@stanley:~/cpfs$ splint -paramuse +gnuextensions cpfs.c
Останавливает на этой строке:
__thread int cpfs_errno;
С ошибкой разбора:
CPFS.C: 127: 13: Ошибка разбора: нефункциональная декларация: __THREAD: int. (Для помощи на ошибках разбора см. В Splint -Help ParseErrors.) *** Не может продолжаться.
Проверка документации и поломчика поднимается без упоминаний __thread
. Отказ Однако __thread
является частью спецификации C99, который шин предположительно поддерживает (вставьте ссылку).
Что тут происходит? Как я могу получить шину, чтобы узнать __thread
?
Решение
Из FAQ FAQ, просто добавь -D__thread=
к командной строке шины. Это будет влиять на удаление __thread
Ключевое слово из кода во время расщепления его изучает. Я предполагаю, что Splint не особо подробно осознает, и не сможет использовать информацию, которая была передана в GCC по ключевому слову.
Другие советы
__thread
не в C99. Это расширение GNU C - раздел, которому вы связали, находится в пределах Расширения к семейству языка C. Отказ Он описывает расширение с точки зрения изменений в стандарт C99, предположительно, поскольку подготовка к его принятому в будущем ревизии стандарта.