La funzione ha un tipo di ritorno diverso da 'void' ma il flusso di esecuzione può raggiungere la fine del corpo della funzione senza incontrare un'istruzione 'return <valore>', generando comportamento indefinito (UB).
CONTROL_REACHES_END
→
Il codice tenta di accedere a un campo di una struttura ('ptr->field') conoscendone solo la dichiarazione anticipata (forward declaration 'struct Node;') ma senza aver incluso il file di intestazione (.h) contenente la definizione completa dei campi della struct.
DEREF_INCOMPLETE_TYPE
→
All'interno di un blocco 'switch', due rami 'case' specificano la stessa identica costante numerica o valore enumerato, violando l'univocità delle diramazioni del selettore.
DUPLICATE_CASE_VALUE
→
L'errore sintattico più comune in C: indica la mancanza del delimitatore ';' al termine dell'istruzione precedente o subito dopo la chiusura di una dichiarazione di struct ('struct Foo { ... };').
EXPECTED_SEMICOLON
→
In uno switch, omettere l'istruzione 'break;' al termine di un blocco 'case' fa proseguire l'esecuzione nel case sottostante; i compilatori moderni richiedono l'uso esplicito dell'attributo '__attribute__((fallthrough));' o commento '/* fallthrough */' se il comportamento è intenzionale.
IMPLICIT_FALLTHROUGH
→
Lo specificatore di conversione (es. %d, %s, %f, %p) passato a printf o scanf non corrisponde al tipo effettivo della variabile passata, portando a letture errate nello stack o crash.
FORMAT_TYPE_MISMATCH
→
L'avviso o errore si verifica quando una funzione viene invocata prima di essere stata dichiarata con un prototipo o prima di aver incluso l'header (.h) corrispondente; negli standard C moderni (C99/C11) è considerato un errore grave.
W_IMPLICIT_FUNCTION
→
L'inizializzatore fornito non è compatibile con il tipo della variabile, oppure una stringa letterale costante supera la capacità dell'array di caratteri allocato (es. 'char s[3] = "ciao";' priva di spazio per il terminatore nullo '\0').
INVALID_INITIALIZER
→