C'è un plug-in clang, in elfs-clang-plugins (creato da me stesso, open source) che aiuta.
Anche se non per GCC, può comunque essere utile ad es. se è possibile aggiungerlo al proprio processo di gate-check CI (se ne hai uno) o semplicemente eseguirlo manualmente una volta ogni tanto.
Il plugin warn_unused_result emetterà un avviso per le funzioni che a mancano un attributo warn_unused_result. Il plugin considera solo le funzioni dichiarate o definite nell'unità di compilazione corrente, quindi le librerie esterne non aggiungono rumore.
Il plug-in accetta un argomento facoltativo, --static-only che lo induce ad avvertire solo sulle funzioni statiche (poiché quando si cambiano le API esterne è troppo lavoro).
Esempio:
int foo(void);
uscita del compilatore:
/tmp/test.c:1:5: warning: missing attribute warn_unused_result
int foo(void);
Da rivedere la documentazione Direi che la risposta è no. Alternativa –
: è possibile eseguire i programmi tramite splint, testando i valori di ritorno ignorati: http://www.splint.org – justin
Quali compilatori lo supportano? – sinelaw