Lavoro su un progetto C ++ che genera bajillions di avvertimenti. La maggior parte degli avvertimenti è apparso dopo che il codice è stato scritto:
- Inizialmente il progetto utilizzava Visual C ++ 8, passando presto a 9, ma c'è poca differenza negli avvisi generati. Gli avvertimenti erano fissi o ridotti al silenzio, quindi non c'erano avvertimenti allora.
- Quindi è stata aggiunta una destinazione a 64 bit. Ha generato un'enorme quantità di avvisi, principalmente a causa dell'uso non corretto dei tipi (ad esempio
unsigned
rispetto asize_t
). Nessuno si è preoccupato, o ha avuto il tempo, di risolverli una volta che il codice ha funzionato per lo scopo. - Successivamente è stato aggiunto il supporto per altre piattaforme che utilizzano GCC (4.5 e 4.6, alcune 4.4 inizialmente). GCC è molto più schizzinoso, quindi ha generato molti più avvisi. Di nuovo nessuno si è preoccupato, o ha avuto tempo, di sistemarli. Ciò è stato complicato dal fatto che GCC non aveva un pragma per mettere a tacere un avvertimento in particolare bit di codice fino alla 4.5, e secondo la documentazione non è ancora quello di cui si avrebbe bisogno.
- Nel frattempo sono comparsi alcuni avvisi obsoleti.
Quindi ora abbiamo un progetto che genera migliaia di avvisi. E non posso nemmeno dire da quanti posti, dato che anche i file .cpp
sono compilati più volte da diversi compilatori e gli avvisi nelle intestazioni vengono stampati più e più volte.
C'è una buona pratica per ripulire qualcosa del genere? O almeno qualche esperienza positiva che ha a che fare con esso?