es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Debería la compilación de código fuente previamente no preprocesado generar los mismos diagnósticos que la compilación de código fuente previamente preprocesado?

Considere este escenario:

$ cat t783.c

#define EXPR (“xxx” + 1)

char* s = EXPR;

$ clang t783.c -c
t783.c:2:11: advertencia: añadir ‘int’ a una cadena no agrega a la cadena [-Wstring-plus-int]

$ clang t783.c -E | clang -xc – -c
t783.c:2:18: advertencia: añadir ‘int’ a una cadena no agrega a la cadena [-Wstring-plus-int]
“`

Aquí vemos que la compilación del código fuente previamente no preprocesado (caso 1) genera las mismas advertencias que la compilación del código fuente previamente preprocesado (caso 2).

Pregunta: ¿es esto siempre cierto? (Excluyendo, por supuesto, las advertencias relacionadas con el preprocesador en sí mismo.)

En otras palabras: ¿las advertencias son “insensibles al preprocesador”?

Motivo: mejor comprensión de los compiladores.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Según el escenario proporcionado, parece que los diagnósticos no son sensibles al preprocesador en este contexto. Sin embargo, no se puede confirmar si esto siempre es cierto, ya que puede depender del escenario específico y los diagnósticos que se estén utilizando.

    Por lo tanto, es importante considerar cada caso por separado y no se puede generalizar el comportamiento de los diagnósticos que son insensibles al preprocesador sin un análisis más detallado.

Comments are closed.