Ho un codice C legacy sulle mie mani e mi viene assegnato il compito di filtrare simboli e percorsi morti / inutilizzati. Nel corso del tempo ci sono stati molti inserimenti e cancellazioni, causando molti simboli inutilizzati. Ho identificato molte variabili morte che sono state scritte solo una volta o due, ma non sono mai state lette da.
Entrambi i test blackbox / whitebox / regression hanno dimostrato che la rimozione del codice morto non ha influito su nessuna procedura. (Abbiamo una suite di test completa).
Ma questa rimozione è stata eseguita solo su una piccola parte del codice. Ora sto cercando un modo per automatizzare questo lavoro.
Ci affidiamo a GCC per fare il lavoro.
P.S. Sono interessato a rimuovere cose del tipo:
- variabili che vengono letti solo per poterli leggere.
- variabili che sono distribuite su più file sorgente e che vengono scritte solo su
Ad esempio:
file1.c:
int i;
file2.c:
extern int i;
....
i=x;