La nueva versión del compilador GCC 15, desarrollada por el equipo de Red Hat, se presenta como un salto notable en la experiencia de uso para programadores en C y C++. Centrado en facilitar la detección y comprensión de errores, esta actualización incorpora cambios tanto visuales como funcionales que responden a peticiones históricas de la comunidad. Estas son las seis mejoras más destacadas.
1. Rutas de ejecución más legibles
El analizador estático del compilador ahora representa visualmente los flujos de ejecución con arte ASCII enriquecido y emojis de advertencia. Esta representación ayuda a comprender con claridad cuándo y dónde ocurren errores como bucles infinitos o comportamientos indefinidos con punteros, destacando los pasos clave del flujo de ejecución del código.
2. Mensajes más claros para errores en plantillas C++
Los errores en plantillas de C++ son conocidos por su complejidad. GCC 15 añade una vista jerárquica opcional para los errores de conceptos, con indentación y viñetas, lo que facilita el seguimiento de las razones por las que no se satisface un concepto. Esta vista, inspirada en el trabajo de Sy Brand, puede activarse con el parámetro -fdiagnostics-set-output=text:experimental-nesting=yes
.
3. Diagnósticos en formato SARIF y herramienta de reproducción

GCC 15 mejora la compatibilidad con el formato SARIF (estándar para herramientas de análisis estático) permitiendo la emisión simultánea en texto clásico y en archivo SARIF mediante -fdiagnostics-add-output=sarif
. También introduce sarif-replay
, una herramienta que permite «reproducir» los errores capturados en archivos SARIF como si fueran mensajes del compilador, con resaltado y contexto completo del código.
4. Compatibilidad con el nuevo estándar C23
GCC 15 cambia el estándar por defecto de C17 a C23, lo que puede provocar errores en código heredado. Por ello, se han mejorado los mensajes de error para advertencias sobre palabras clave nuevas (bool
, true
, false
) y funciones mal declaradas. El objetivo es guiar al desarrollador con mensajes específicos y enlaces entre errores y sus declaraciones originales.
5. Nuevo esquema de colores
El sistema de colores en los mensajes de error ha sido revisado completamente. Ahora se utilizan distintos colores para distinguir claramente, por ejemplo, tipos en conflicto. Esto facilita identificar discrepancias sin necesidad de leer cada línea al detalle. La coherencia visual ayuda a los desarrolladores a ubicar errores y entender su origen de forma más rápida.
6. Biblioteca libgdiagnostics
Todo el sistema de diagnóstico de GCC (resaltado, sugerencias de corrección, ejecución de rutas, etc.) ahora se ofrece como una biblioteca compartida: libgdiagnostics
. Está disponible con API en C, C++ y Python, lo que permite a otras herramientas beneficiarse del sistema de diagnósticos del compilador, por ejemplo para validación de código o desarrollo de linters personalizados.
GCC 15, previsto para su lanzamiento oficial como GCC 15.1 este mes de abril, ya está siendo probado en Fedora 42 Beta. Los desarrolladores pueden explorar sus nuevas capacidades a través de Compiler Explorer mientras se ultiman los últimos detalles.
Con estas mejoras, GCC no solo evoluciona como herramienta técnica, sino como entorno más amigable y eficaz para depurar, mantener y evolucionar proyectos complejos en C y C++.
Vía: Redhat