Pregunta

Running férula

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

Se detiene en esta línea:

__thread int cpfs_errno;

Con un error de análisis:

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

Verificación de la documentación y hacer gárgaras se le ocurre ninguna mención de __thread. Sin embargo __thread es parte de la C99 spec , que férula supuestamente soportes (inserto de referencia).

¿Qué está pasando aquí? ¿Cómo puedo obtener una férula para reconocer __thread?

¿Fue útil?

Solución

Desde el férula FAQ , sólo tiene que añadir -D__thread= a la línea de comandos férula. Esto tendrá el efecto de eliminar la palabra clave __thread del código mientras férula se examinaba. Asumo aquí que férula no es especialmente consciente de hilo, y no sería capaz de utilizar la información que se transmite a GCC por la palabra clave.

Otros consejos

__thread no está en C99. Es una extensión de GNU C - la sección que haya vinculado a está dentro de Extensiones al C Lengua. En él se describe la extensión en términos de cambios en el estándar C99, presumiblemente como preparación para tenerlo adoptada en una futura revisión de la norma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top