Avvisi dell'analisi codice per il linguaggio C/C++
Aggiornamento: novembre 2007
In questa sezione vengono elencati gli avvisi di analisi codice per C/C++ nell'intervallo compreso tra C6000 e C6999.
In questa sezione
Numero avviso |
Descrizione |
---|---|
avviso C6001: utilizzo di memoria <variabile> non inizializzata |
|
avviso C6011: risoluzione dei riferimenti del puntatore NULL <nome> |
|
avviso C6029: possibile sovraccarico del buffer nella chiamata a <funzione>: utilizzo del valore non verificato |
|
avviso C6031: valore restituito ignorato: <funzione> potrebbe restituire un valore imprevisto |
|
avviso C6053: la chiamata a <funzione> non può terminare con zero la stringa <variabile> |
|
avviso C6054: la stringa <variabile> non può terminare con zero |
|
avviso C6057: sovraccarico del buffer a causa della mancata corrispondenza di numero di caratteri/numero di byte nella chiamata a <funzione> |
|
avviso C6059: Parametro di lunghezza errata nella chiamata a <funzione>. Passare il numero di caratteri rimanenti, non la dimensione del buffer di <variabile> |
|
avviso C6063: manca l'argomento stringa per <funzione> corrispondente all'identificatore di conversione <numero> |
|
avviso C6064: manca l'argomento integer per <funzione> corrispondente all'identificatore di conversione <numero> |
|
avviso C6066: non puntatore passato come parametro <numero> mentre nella chiamata a <funzione> è richiesto un puntatore |
|
avviso C6067: il parametro <numero> nella chiamata a <funzione> deve essere l'indirizzo della stringa |
|
avviso C6200: l'indice <nome> non è compreso nell'intervallo valido degli indici <min> - <max> per il buffer <variabile> non allocato nello stack |
|
avviso C6201: sovraccarico del buffer per <variabile>, probabilmente allocato nello stack, per la chiamata a <name>: la lunghezza <min> supera la dimensione del buffer <max> |
|
avviso C6202: sovraccarico del buffer per <variabile>, probabilmente allocato nello stack, nella chiamata a <funzione>: la lunghezza <dimensione> supera la dimensione del buffer <max> |
|
avviso C6203: sovraccarico del buffer non allocato nello stack <variabile> nella chiamata a <funzione>: la lunghezza <dimensione> supera la dimensione del buffer |
|
avviso C6204: possibile sovraccarico del buffer nella chiamata a <funzione>: utilizzo del parametro non verificato <variabile> |
|
avviso C6209: utilizzo di 'sizeof<variabile1>' come parametro <numero> nella chiamata a <funzione> dove <variabile2> potrebbe essere una matrice di caratteri di tipo "wide". Si intendeva utilizzare il conteggio di caratteri invece del conteggio di byte? |
|
avviso C6211: Perdita di memoria <puntatore> a causa di un'eccezione. Si consiglia di utilizzare un blocco catch locale per pulire la memoria |
|
avviso C6214: cast tra tipi integer semanticamente diversi: da HRESULT a un tipo Boolean |
|
avviso C6215: cast tra tipi integer semanticamente diversi: da un tipo Boolean a HRESULT |
|
avviso C6216: cast inserito dal compilatore tra tipi integer semanticamente diversi: da un tipo Boolean a HRESULT |
|
avviso C6217: Cast implicito tra tipi integer semanticamente diversi: test di HRESULT con 'not' in corso. Si consiglia l'utilizzo della macro SUCCEEDED o FAILED |
|
avviso C6219: Cast implicito tra tipi integer semanticamente diversi: confronto di HRESULT con 1 o TRUE in corso. Si consiglia l'utilizzo della macro SUCCEEDED o FAILED |
|
avviso C6220: Cast implicito tra tipi integer semanticamente diversi: confronto di HRESULT con -1 in corso. Si consiglia l'utilizzo della macro SUCCEEDED o FAILED |
|
avviso C6221: Cast implicito tra tipi integer semanticamente diversi: confronto di HRESULT con un integer. Si consiglia l'utilizzo della macro SUCCEEDED o FAILED |
|
avviso C6225: Cast implicito tra tipi integer semanticamente diversi: assegnazione di 1 o TRUE a HRESULT in corso. Si consiglia l'utilizzo di S_FALSE |
|
avviso C6226: Cast implicito tra tipi integer semanticamente diversi: assegnazione di -1 a HRESULT in corso. Si consiglia l'utilizzo di E_FAIL |
|
avviso C6230: cast implicito tra tipi integer semanticamente diversi: utilizzo di HRESULT in un contesto Booleano |
|
avviso C6235: (<costante diversa da zero> || <espressione>) è sempre una costante diversa da zero |
|
avviso C6236: (<espressione> || <costante diversa da zero>) è sempre una costante diversa da zero |
|
avviso C6237: (<zero> && <espressione>) è sempre zero. <espressione> non viene mai valutata e può avere effetti collaterali |
|
avviso C6239: (<costante diversa da zero> && <espressione>) restituisce sempre il risultato di <espressione>. Si intendeva utilizzare l'operatore AND bit per bit? |
|
avviso C6240: (<espressione> && <costante diversa da zero>) restituisce sempre il risultato di <espressione>. Si intendeva utilizzare l'operatore AND bit per bit? |
|
avviso C6242: Un salto da questo blocco try impone la rimozione locale con gravi conseguenze per le prestazioni |
|
avviso C6244: la dichiarazione locale di <variabile> nasconde la precedente dichiarazione alla riga <riga> di <file> |
|
avviso C6246: La dichiarazione locale di <variabile> nasconde la dichiarazione con lo stesso nome in ambito esterno. Per informazioni aggiuntive vedere la dichiarazione precedente alla riga <posizione>. |
|
avviso C6248: l'impostazione di un elenco DACL di SECURITY_DESCRIPTOR su NULL determinerà la mancata protezione di un oggetto |
|
avviso C6250: La chiamata di <funzione> VirtualFree senza il flag MEM_RELEASE potrebbe liberare la memoria ma non i descrittori di indirizzo (VAD), con conseguente perdita di spazio |
|
avviso C6255: _alloca indica l'errore mediante la generazione di un'eccezione di overflow dello stack. Si consiglia di utilizzare _malloca |
|
avviso C6258: l'utilizzo di TerminateThread non consente la corretta pulizia dei thread |
|
avviso C6259: il codice con etichetta non è eseguibile: (<espressione> & <costante>) in una espressione switch non in grado di restituire <etichetta-case> |
|
avviso C6260: sizeof * sizeof è quasi sempre errato. Si intendeva utilizzare un conteggio di caratteri o un conteggio di byte? |
|
avviso C6262: La funzione utilizza <costante> byte dello stack e supera /analyze:stacksize<costante>. Si consiglia di spostare dei dati nell'heap |
|
avviso C6263: utilizzo di _alloca in un ciclo: in questo modo può verificarsi il rapido overflow dello stack |
|
avviso C6268: Ordine errato delle operazioni: (<TIPO1>)(<TIPO2>)x + y. È possibile che manchino le parentesi in (<TIPO1>)((<TIPO2>)x + y) |
|
avviso C6269: possibile ordine errato delle operazioni: risoluzione del riferimento ignorata |
|
avviso C6270: manca l'argomento float per <funzione>: aggiungere un argomento float corrispondente all'identificatore di conversione <numero> |
|
avviso C6271: argomento supplementare passato a <funzione>: il parametro <numero> non è utilizzato dalla stringa di formato |
|
avviso C6272: non float passato come argomento <numero> mentre nella chiamata a <funzione> è richiesto un float |
|
avviso 6273: non integer passato come parametro <numero> mentre nella chiamata a <funzione> è richiesto un integer: se viene passato il valore di un puntatore, utilizzare %p |
|
avviso C6274: non carattere passato come parametro <numero> mentre nella chiamata a <funzione> è richiesto un carattere |
|
avviso C6276: Cast tra tipi di stringa semanticamente diversi: da char * a wchar_t *. L'utilizzo di una stringa non valida può produrre un comportamento indefinito |
|
avviso C6277: Nome di applicazione NULL con un percorso senza virgolette nella chiamata a <funzione>: questa condizione può provocare una vulnerabilità di protezione se il percorso contiene spazi |
|
avviso C6278: <variabile> è stato allocato con l'operatore di matrice new [], ma eliminato con l'operatore scalare delete. I distruttori non verranno chiamati |
|
avviso C6279: <variabile> è stato allocato con l'operatore scalare new, ma eliminato con l'operatore di matrice delete [] |
|
avviso C6280: <variabile> è stato allocato con <funzione>, ma eliminato con <funzione> |
|
avviso 6281: ordine errato delle operazioni: gli operatori relazionali hanno precedenza maggiore degli operatori bit per bit |
|
avviso C6282: Operatore errato: assegnazione di costante in contesto Booleano. Si consiglia di utilizzare ''==' |
|
avviso C6283: <variabile> è stato allocato con l'operatore di matrice new [], ma eliminato con l'operatore scalare delete |
|
avviso C6284: oggetto passato come parametro '%d' mentre nella chiamata a <funzione> è richiesta una stringa. |
|
avviso C6285: (<costante diversa da zero> || <costante diversa da zero>) è sempre una costante diversa da zero. Si intendeva utilizzare l'operatore AND bit per bit? |
|
avviso C6286: (<costante diversa da zero> || <espressione>) è sempre una costante diversa da zero. <espressione> non viene mai valutata e può avere effetti collaterali |
|
avviso C6287: codice ridondante: le sottoespressioni di sinistra e destra sono identiche |
|
avviso C6288: Operatore errato: l'inclusione reciproca con && è sempre zero. Si intendeva utilizzare ||? |
|
avviso C6289: Operatore errato: l'esclusione reciproca con || è sempre una costante diversa da zero. Si intendeva utilizzare &&? |
|
avviso C6290: Operazione bit per bit su risultato logico: ! ha maggiore precedenza di &. Utilizzare && o (!(x & y)) |
|
avviso C6291: Operazione bit per bit su risultato logico: ! ha maggiore precedenza di |. Utilizzare || o (!(x | y)) |
|
avviso C6292: Ciclo For definito in modo non corretto: conta in senso crescente a partire dal massimo |
|
avviso C6293: Ciclo For definito in modo non corretto: conta in senso decrescente a partire dal minimo |
|
avviso C6294: Ciclo For definito in modo non corretto: la condizione iniziale non soddisfa il test. Corpo del ciclo non eseguito |
|
avviso C6295: Ciclo For definito in modo non corretto: i valori di <variabile> sono sempre compresi nell'intervallo "min" - "max". Il ciclo viene eseguito all'infinito |
|
avviso C6296: Ciclo For definito in modo non corretto: corpo del ciclo eseguito solo una volta |
|
avviso C6297: Overflow aritmetico: il valore a 32 bit viene spostato, quindi sottoposto a cast su un valore a 64 bit. Il risultato potrebbe non essere il valore previsto |
|
avviso C6298: argomento <puntatore>: utilizzo di una stringa in sola lettura come argomento stringa non protetto da scrittura. Questa condizione condurrà a tentativi di scrittura nella memoria statica in sola lettura e provocherà arresti anomali casuali del sistema |
|
avviso C6299: il confronto esplicito di un campo di bit con un tipo Boolean produrrà risultati imprevisti |
|
avviso C6299: il confronto esplicito di un campo di bit con un tipo Boolean produrrà risultati imprevisti |
|
avviso C6303: stringa di formato non corrispondente: stringa di caratteri di tipo "wide" passata come parametro <numero> mentre nella chiamata a <funzione> è richiesta una stringa di caratteri |
|
avviso C6305: potenziale mancata corrispondenza tra quantità sizeof e countof |
|
avviso C6306: chiamata a <funzione> non corretta: si consiglia di utilizzare <funzione> che accetta va_list come argomento |
|
avviso C6308: 'realloc' può restituire un puntatore a null: l'assegnazione di un puntatore a null a <variabile>, che viene passato come argomento a 'realloc', provocherà la perdita del blocco di memoria originale |
|
avviso C6309: l'argomento <numero> ha valore null: questa condizione non soddisfa la specifica di funzione di <funzione> |
|
avviso C6310: una costante non valida nel filtro eccezioni può provocare comportamenti imprevisti |
|
avviso C6312: Possibile ciclo infinito: utilizzo della costante EXCEPTION_CONTINUE_EXECUTION nell'espressione exception-filter di un try-except |
|
avviso C6313: Operatore errato: impossibile testare un flag con valore zero con AND bit per bit. Utilizzare un test di uguaglianza per verificare i flag con valore zero |
|
avviso C6314: Ordine errato delle operazioni: l'operatore OR bit per bit ha maggiore precedenza dell'operatore di espressione condizionale. Aggiungere delle parentesi per chiarire lo scopo |
|
avviso C6315: Ordine errato delle operazioni: l'operatore AND bit per bit ha maggiore precedenza dell'operatore OR bit per bit. Aggiungere delle parentesi per chiarire lo scopo |
|
avviso C6316: Operatore errato: l'espressione testata è costante e diversa da zero. Utilizzare AND bit per bit per determinare se i bit siano impostati |
|
avviso C6317: operatore errato: l'operatore NOT logico (!) non è interscambiabile con l'operatore di complemento a uno (~) |
|
avviso C6318: __try/__except definiti in modo non corretto: utilizzo della costante EXCEPTION_CONTINUE_SEARCH o di un'altra costante che restituisce zero nell'espressione di filtro eccezioni. Il codice nel blocco del gestore eccezioni non viene eseguito |
|
avviso C6319: se si utilizza l'operatore virgola in un'espressione testata, l'argomento a sinistra viene ignorato se privo di effetti collaterali |
|
avviso C6320: l'espressione di filtro eccezioni è la costante EXCEPTION_EXECUTE_HANDLER. Questa condizione potrebbe mascherare eccezioni la cui gestione non è prevista |
|
avviso C6322: blocco _except vuoto |
|
avviso 6323: utilizzo di un operatore aritmetico su tipi boolean |
|
avviso C6324: potenziale utilizzo errato di <funzione1>: si intendeva utilizzare <funzione2>? |
|
avviso C6326: confronto potenziale di una costante con un'altra costante |
|
avviso C6327: Potenziale sovraccarico del buffer: SysAllocStringLen copia <numero> caratteri dalla stringa <variabile> senza convalidare il numero di caratteri da copiare. Il codice potrebbe arrestarsi in modo anomalo |
|
avviso C6328: <tipo> passato come parametro <numero> mentre <tipo> è richiesto nella chiamata a <funzione> |
|
avviso C6331: Parametro non valido: il passaggio di MEM_RELEASE insieme a MEM_DECOMMIT a <funzione> non è consentito. Questa chiamata non riuscirà |
|
avviso C6332: Parametro non valido: il passaggio di zero come parametro dwFreeType a <funzione> non è consentito. Questa chiamata non riuscirà |
|
avviso C6333: Parametro non valido: il passaggio di MEM_RELEASE e di un parametro dwSize diverso da zero a <funzione> non è consentito. Questa chiamata non riuscirà |
|
avviso C6334: l'applicazione dell'operatore sizeof a un'espressione con un operatore può provocare risultati imprevisti |
|
avviso C6335: handle di informazioni del processo con perdita di memoria <nomehandle> |
|
avviso C6336: l'operatore aritmetico ha precedenza sull'operatore punto interrogativo. Utilizzare delle parentesi per chiarire lo scopo |
|
avviso C6381: L'API di chiusura <funzione> richiede un dwReason o lpMessage valido |
|
avviso C6383: sovraccarico del buffer causato dalla conversione di un conteggio di elementi in un conteggio di byte: per il parametro <numero> nella chiamata a <funzione> è previsto un conteggio di elementi |
|
avviso C6384: divisione di sizeof di un puntatore per un altro valore |
|
avviso C6385: dati non validi: nell'accesso a <nome buffer>, la dimensione leggibile è <dimensione1> byte, ma è possibile leggere <dimensione2> byte: Righe: x, y |
|
avviso C6386: dati non validi: sovraccarico del buffer: nell'accesso a <nome buffer>, la dimensione non protetta da scrittura è <dimensione1> byte, ma è possibile scrivere in <dimensione2> byte: Righe: x, y |
|
avviso C6387: <argomento> può essere <valore>: questa condizione non soddisfa la specifica della funzione <nome funzione>: Righe: x, y |
|
avviso C6388: <argomento> non può essere <valore>: questa condizione non soddisfa la specifica della funzione <nome funzione>: Righe: x, y |
|
avviso C6400: L'utilizzo di <nome funzione> per eseguire un confronto senza distinzione tra maiuscole e minuscole con la stringa costante <nome stringa> produce risultati imprevisti nelle impostazioni internazionali diverse dalle inglesi |
|
avviso C6401: L'utilizzo di <nome funzione> in impostazioni internazionali predefinite per eseguire un confronto senza distinzione tra maiuscole e minuscole con la stringa costante <nome stringa> produce risultati imprevisti nelle impostazioni internazionali diverse dalle inglesi |
|
avviso C6500: annotazione non valida: il valore della proprietà <nome> non è valido |
|
avviso C6501: conflitto di annotazioni: la proprietà <nome> è in conflitto con la proprietà specificata in precedenza |
|
avviso C6503: annotazione non valida: i riferimenti e le matrici non possono essere contrassegnati Null=Yes o Null=Maybe |
|
avviso C6504: annotazione non valida: la proprietà 'Null' può essere utilizzata solo con valori di puntatore, puntatore a membro, matrice o tipo di riferimento |
|
avviso C6505: annotazione non valida: la proprietà MustCheck non può essere utilizzata con valori di tipo void |
|
avviso C6506: annotazione non valida: la proprietà <nome> può essere utilizzata solo con valori di tipo puntatore |
|
avviso C6507: conflitto di annotazioni: la proprietà Null in Deref=0 su una postcondizione deve essere un sottoinsieme della proprietà Null sulla precondizione |
|
avviso C6508: annotazione non valida: accesso in scrittura non consentito su valori const |
|
avviso C6509: annotazione non valida: impossibile fare riferimento a 'return' da una precondizione |
|
avviso C6510: annotazione non valida: la proprietà 'NullTerminated' può essere utilizzata solo con valori di tipo puntatore |
|
avviso C6511: annotazione non valida: la proprietà MustCheck deve essere Yes o No |
|
avviso C6512: annotazione non valida: la proprietà 'Null' deve essere Maybe se la proprietà 'Valid' è No |
|
avviso C6513: annotazione non valida: 'ElementSize' richiede proprietà di dimensione aggiuntive |
|
avviso C6514: annotazione non valida: il valore della proprietà <nome> supera le dimensioni della matrice |
|
avviso C6515: annotazione non valida: la proprietà <nome> può essere utilizzata solo con valori di tipo puntatore |
|
avviso C6516: annotazione non valida: nessuna proprietà specificata per l'attributo <nome> |
|
avviso C6517: annotazione non valida: la proprietà ValidElementsConst e ValidBytesConst non può essere specificata su buffer non leggibili |
|
avviso C6518: annotazione non valida: la proprietà WriteableElementsConst e WriteableBytesConst non può essere specificata come precondizione su buffer protetti da scrittura |
|
avviso C6521: specifica di dimensione non valida: l'operatore * può essere applicato solo a tipi di puntatore |
|
avviso C6522: specifica di dimensione non valida: l'espressione deve essere di tipo integrale |
|
avviso C6523: specifica di dimensione non valida: parametro <nome> non trovato |
|
avviso C6525: specifica di dimensione non valida: il valore della proprietà potrebbe non essere valido |
|
avviso C6526: specifica di dimensione non valida: l'espressione deve essere di tipo puntatore o matrice |
|
avviso 6530: stile <nome> della stringa di formato non riconosciuto |
|
avviso C6535: il buffer non può avere la dimensione <n>, superiore a max(size_t) |
Vedere anche
Concetti
Linee guida per la scrittura di codice protetto