Fallo del compilador Solidity: Una tormenta perfecta de errores antiguos
2025-08-16
Recientemente ha surgido un problema de fallo intrigante en el compilador Solidity: causa una falla de segmentación incluso al compilar código perfectamente válido. La causa raíz se rastreó a un error de resolución de sobrecarga de 12 años en versiones de G++ anteriores a la 11.4, que interactúa con las reglas de reescritura de comparación implícita de C++20 al manejar el tipo `boost::rational` de Boost. Esta combinación lleva a una recursión infinita y a un desbordamiento de pila. El problema no está en el propio código Solidity, sino en una interacción sorprendente entre G++, Boost y la especificación C++20. La solución es actualizar Boost a la versión 1.75 o superior, o actualizar G++ a la versión 14 o superior.
(osec.io)