Avisos do compilador geralmente fornecem dicas úteis para erros comuns de programação. Muitas vezes, recomenda-se transformar avisos do compilador em erros (por exemplo, aqui ). Na minha experiência, isso é útil para evitar que avisos sejam ignorados, especialmente em bases de código maiores ou em sistemas de compilação automatizados. No entanto, alguns avisos são úteis como avisos e não podem ser transformados em erros, seja porque podem ser falsos positivos ou porque a base de código não pode ser adaptada imediatamente, mas isso leva algum tempo de transição.
Como solução alternativa, eu poderia compilar o mesmo código duas vezes:
- Uma execução com a maioria ou todos os avisos habilitados (por exemplo,
-Wextra
), mas sem transformá-los em erros (ou seja, sem-Werror
) - Uma segunda execução com um conjunto menor de avisos, mas com configurações pedantes (ou seja, com a
-Werror
opção de linha de comando)
Dessa forma, o projeto de código se beneficiaria de mais avisos do que poderia corrigir atualmente.
Existe uma maneira de fazer isso diretamente, ou seja, com uma única etapa de compilação, não duas?
Li algumas menções à -Wno-error=[name]
opção em outra pergunta e ela mal foi mencionada na referência de linha de comando mais recente do clang , mas não tenho detalhes. Caso eles forneçam uma solução para a minha pergunta, você poderia explicar melhor o que ela faz e/ou fornecer um link para onde está documentada?