Splint barfs на __thread, который является частью C99 - PullRequest
0 голосов
/ 07 сентября 2010

Ходовая шина

matt@stanley:~/cpfs$ splint -paramuse +gnuextensions cpfs.c

Остановки на этой линии:

__thread int cpfs_errno;

С ошибкой разбора:

cpfs.c:127:13: Parse Error: Non-function declaration: __thread :
               int. (For help on parse errors, see splint -help parseerrors.)
*** Cannot continue.

При проверке документации и полоскания нет упоминания о __thread. Однако __thread является частью спецификации C99 , которую якобы поддерживает Splint (вставить ссылку).

Что здесь происходит? Как заставить шину распознать __thread?

Ответы [ 2 ]

6 голосов
/ 07 сентября 2010

__thread не в C99.Это расширение GNU C - раздел, на который вы ссылаетесь, находится в пределах Расширения семейства языков C .Он описывает расширение с точки зрения изменений в стандарте C99, предположительно, в качестве подготовки к его принятию в будущем пересмотре стандарта.

3 голосов
/ 07 сентября 2010

Из FAQ шины просто добавьте -D__thread= в командную строку шины. Это приведет к удалению ключевого слова __thread из кода во время проверки шины. Здесь я предполагаю, что шина не особо поддерживает потоки и не сможет использовать информацию, переданную в GCC по ключевому слову.

...