barfs stecca __thread, che fa parte della C99
-
01-10-2019 - |
Domanda
Esecuzione stecca
matt@stanley:~/cpfs$ splint -paramuse +gnuextensions cpfs.c
Ferma su questa linea:
__thread int cpfs_errno;
Con un errore di analisi:
cpfs.c:127:13: Parse Error: Non-function declaration: __thread : int. (For help on parse errors, see splint -help parseerrors.) *** Cannot continue.
Controllo della documentazione e gargarismi esce con alcuna menzione di __thread
. Tuttavia __thread
fa parte della C99 spec , che stecca presumibilmente supporti (inserto di riferimento).
Che cosa sta succedendo qui? Come posso ottenere stecca di riconoscere __thread
?
Soluzione
stecca FAQ , basta aggiungere -D__thread=
alla riga di comando stecca. Ciò avrà l'effetto di eliminare la parola chiave __thread
dal codice, mentre stecca sta esaminando esso. Sto assumendo qui che stecca non è particolarmente filo consapevoli, e non sarebbe in grado di utilizzare le informazioni che è stato trasmesso a GCC dalla parola chiave.
Altri suggerimenti
__thread
non è in C99. Si tratta di un'estensione GNU C - la sezione che avete collegato a è all'interno di estensioni per il linguaggio C Famiglia . Descrive l'estensione in termini di modifiche allo standard C99, presumibilmente come preparazione di averlo adottato in una futura revisione della norma.