Falha no compilador Solidity: Uma tempestade perfeita de bugs antigos

2025-08-16
Falha no compilador Solidity: Uma tempestade perfeita de bugs antigos

Um problema de falha intrigante no compilador Solidity surgiu recentemente: ele causa um erro de segmentação mesmo ao compilar código perfeitamente válido. A causa raiz foi rastreada a um bug de resolução de sobrecarga de 12 anos em versões do G++ anteriores à 11.4, interagindo com as regras de reescrita de comparação implícita do C++20 ao lidar com o tipo `boost::rational` do Boost. Essa combinação leva a recursão infinita e um estouro de pilha. O problema não está no próprio código Solidity, mas em uma interação surpreendente entre G++, Boost e a especificação C++20. A solução é atualizar o Boost para 1.75 ou superior, ou atualizar o G++ para a versão 14 ou superior.

Leia mais
Desenvolvimento Bug do compilador Bug do C++