Empecé a trabajar en varios proyectos de C que están construyendo usando gcc. Creo que esta elección se hizo por varias razones:
- Tuve que hacer una compilación cruzada para el brazo desde el principio (creo).
- El rendimiento es la primera y más importante especificación.
gccfue y sigue siendo la primera opción fácil.
No tengo ninguna razón para impugnar esa elección y no estoy en condiciones de hacerlo de todos modos.
La base de código de cualquier proyecto individual es relativamente pequeña. Cada proyecto se construye con un Makefile relativamente limpio (actualmente se está actualizando), gcc -Wall -Wextrano se queja en absoluto y se realizan algunas pruebas mínimas. No se realiza un análisis estático automatizado ni se formatea el código y el código no es sintácticamente consistente, aunque es muy legible y parece pensado.
No quiero volver a formatear cada línea de código a la vez, tengo la intención de hacer lo que se describe en alguna parte alrededor de esta respuesta (especialmente porque el contexto realmente no es tan malo): refactorizar y reformatear tanto como sea posible al tratar cualquier tema, pero sigue tomando temas sin intenciones de estilo de código en mente. Desafortunadamente, no estoy en condiciones de imponer un estilo de código o verificaciones adicionales en las confirmaciones, pero siento que hay una sensación entre mis colegas de que debe respetar la convención de código existente al modificar un archivo (aunque conozco el estado actual del código no ocurrió mágicamente), y un deseo de escribir un buen código.
Esta es la primera vez que programo en C con tal estado mental, y estoy muy atraído por las diversas herramientas de análisis y formato de código que clangofrece.
La esencia de mi pregunta es así: ¿podría generar problemas para seguir las clangsugerencias y utilizar clangherramientas de formato y análisis al construir con gcc? Por ejemplo, algunas advertencias podrían provenir de una representación interna gccque no se utiliza, o de un código de bytes clangque intentaría generar que gccno lo haga.
¿Hay una buena manera de pasar automáticamente los gccparámetros de compilación (principalmente la arquitectura de destino y el nivel de optimización) para clangque las sugerencias de advertencia tengan sentido?
Agregaré que estoy familiarizado gccy su informe de errores. Estoy interesado en obtener más advertencias y errores (relevantes), no solo mejor redactados y advertencias más comprensibles. Entonces, si no puedo confiar en las sugerencias adicionales que clangpueden producir en función de su representación interna porque construyo gccal final del día, entonces no estoy realmente interesado en hacerlo.
Incluí mucho contexto, así que siéntase libre de hacer cualquier comentario o responder cualquier pregunta subyacente que no pueda plantear.