Análise de código para avisos de C/C++
Esta seção lista de avisos de análise de código C/C++ no intervalo de C6000 para C6999.
Nesta seção
Número do Aviso |
Descrição |
---|---|
Aviso C6001: usando o <variable> de memória não inicializada |
|
Aviso C6011: <name> de ponteiro nulo de referência |
|
Aviso C6029: chamada para <function> de saturação de buffer possível: uso de valor não verificado |
|
Aviso C6031: retorne o valor ignorado: <function> poderia retornar o valor inesperado |
|
Aviso C6053: chamada para <function> pode não zero-encerrar a seqüência de caracteres <variable>. |
|
Aviso C6054: a seqüência de caracteres <variable>. pode não ser terminada em zero |
|
Aviso C6057: devido ao número de caracteres/número de incompatibilidade de bytes na chamada para <function> de saturação de buffer |
|
Aviso C6059: Parâmetro de comprimento incorreto na chamada para <function>. Passa o número de caracteres restantes, não o tamanho do buffer de <variable> |
|
Aviso C6063: argumento ausente da seqüência de caracteres para <function> correspondente para o especificador de conversão <number> |
|
Aviso C6064: argumento de inteiro ausente para <function> correspondente para o especificador de conversão <number> |
|
Aviso C6066: não ponteiro é passado como o parâmetro <number> Quando o ponteiro é necessária na chamada para <function> |
|
Aviso C6067: parâmetro <number> na chamada para <function> deve ser o endereço da seqüência de caracteres |
|
Aviso C6200: índice <name> está fora do intervalo de índice válido <min> Para <max> o buffer de pilha não <variable> |
|
Aviso C6201: saturação de buffer para <variable>, que é possivelmente a pilha alocada: índice <name> está fora do intervalo de índice válido <min> Para <max> |
|
Aviso C6202: de saturação de buffer para <variable>, que é possivelmente a pilha alocada, na chamada para <function>: comprimento de <size> excede o tamanho do buffer <max> |
|
Aviso C6203: buffer de saturação de buffer <variable> na chamada para <function>: comprimento de <size> excede o tamanho do buffer |
|
Aviso aviso C6204: chamada para <function> de saturação de buffer possível: uso do parâmetro desmarcado <variable> |
|
Aviso C6209: usando 'sizeof <variable1> ' como o parâmetro <number> na chamada para <function> onde <variable2> pode ser uma matriz de caracteres extensos, você pretendia usar contagem de caracteres em vez de contagem de bytes? |
|
Aviso C6211: Vazamento de memória <pointer> devido a uma exceção. Considere o uso de um bloco catch local para limpar a memória |
|
Aviso C6214: Converter entre tipos inteiros semanticamente diferentes: HRESULT para um tipo booleano |
|
Aviso C6215: Converter entre tipos inteiros semanticamente diferentes: um booleano tipo HRESULT |
|
Aviso C6216: inserido de compilador cast entre semanticamente diferentes tipos de integrais: um booleano tipo HRESULT |
|
Aviso C6217: Conversão implícita entre tipos inteiros semanticamente diferentes: Testando o HRESULT com 'não'. Considere usar a macro teve êxito ou falha em vez disso |
|
Aviso C6219: Conversão implícita entre tipos inteiros semanticamente diferentes: Comparando o HRESULT para 1 ou TRUE. Considere usar a macro teve êxito ou falha em vez disso |
|
Aviso C6220 - conversão implícita entre tipos inteiros semanticamente diferentes: Comparando o HRESULT como -1. Considere usar a macro teve êxito ou falha em vez disso |
|
Aviso C6221: Conversão implícita entre tipos inteiros semanticamente diferentes: Comparando o HRESULT para um inteiro. Considere o uso de macros teve êxito ou falha em vez disso |
|
Aviso C6225: Conversão implícita entre tipos inteiros semanticamente diferentes: atribuindo 1 ou TRUE para o HRESULT. Considere usando o S_FALSE |
|
Aviso C6226: Conversão implícita entre tipos inteiros semanticamente diferentes: atribuindo -1 para o HRESULT. Considere usando o E_FAIL |
|
Aviso C6230: conversão implícita entre tipos inteiros semanticamente diferentes: usando o HRESULT em um contexto Boolean |
|
Aviso C6235: (< diferente de zero constante > || <expression>) é sempre uma constante diferente de zero |
|
Aviso C6236: (<expression> || < diferente de zero constante >) é sempre uma constante diferente de zero |
|
Aviso C6237: (<zero> & & <expression>) é sempre zero. <expression> nunca é avaliado e pode ter efeitos colaterais |
|
Aviso C6239: (< diferente de zero constante > & & <expression>) sempre retorna o resultado de <expression>. Você pretendia usar o operador bit a bit- e operador? |
|
Aviso C6240: (<expression> & & < diferente de zero constante >) sempre avalia o resultado de <expression>. Você pretendia usar o operador bit a bit- e operador? |
|
Aviso C6242: Um salto desse bloco try-força o desenrolamento de local. Gera a penalidade de desempenho |
|
Aviso C6244: declaração de local de <variable> oculta a declaração anterior em <line> de <file> |
|
Aviso C6246: Declaração de local de <variable> oculta a declaração de mesmo nome no escopo externo. Informações adicionais: Consulte a declaração anterior em <location>. |
|
Aviso C6248: a definição de DACL de um SECURITY_DESCRIPTOR NULL resultarão em um objeto desprotegido |
|
Aviso C6250: Chamando <function> VirtualFree sem o sinalizador MEM_RELEASE pode liberar memória, mas não os descritores de endereço (VADs); resulta em perdas de espaço de endereço |
|
Aviso C6255: _alloca indica a falha levantando uma exceção de estouro de pilha. Considere usando o _alloca_s |
|
Aviso C6258: usar TerminateThread não permite que o segmento correto clean up |
|
Aviso C6259: código rotulado é inalcançável: (<expression> & <constant>) no switch expr não é possível avaliar < case-rótulo > |
|
Aviso C6260: sizeof * sizeof quase sempre está errada, você pretendia usar uma contagem de caracteres ou uma contagem de bytes? |
|
Aviso C6262: Função usa <constant> bytes de pilha: excede /ANALYZE: stacksize <constant>. Considere a movimentação de alguns dados para o heap |
|
Aviso C6263: usando _alloca em um loop; Isso pode rapidamente de estouro de pilha |
|
Aviso C6268: Ordem incorreta de operações: (<TYPE1>)(<TYPE2>) x + y. Possíveis faltando parênteses (<TYPE1>) ((<TYPE2>) x + y) |
|
Aviso C6269: ordem incorreta possível de operações: Referência ignorada |
|
Aviso C6270: argumento ausente de float para <function>: Adicionar um argumento float correspondente para o especificador de conversão <number> |
|
Aviso C6271: argumento extra é passado para <function>: parâmetro <number> não é usado pela seqüência de caracteres de formato |
|
Aviso C6272: não float é passado como o argumento <number> Quando float é necessária na chamada para <function> |
|
6273 - de aviso não inteiro é passado como o parâmetro <number> Quando o número inteiro é necessária na chamada para <function>: Se o valor do ponteiro está sendo passado, %p deve ser usado. |
|
Aviso C6274: caracteres não é passado como o parâmetro <number> Quando o caractere é necessária na chamada para <function> |
|
Aviso C6276: Converter entre tipos de seqüência semanticamente diferente: char * para wchar_t *. Uso de seqüência de caracteres inválida pode levar a um comportamento indefinido |
|
Aviso C6277: Nome do aplicativo nulo com um caminho sem aspas na chamada para <function>: resulta em uma vulnerabilidade de segurança se o caminho contiver espaços |
|
Aviso C6278: <variable> é alocada com array [novo], mas excluídos com a exclusão de escalar. Não serão chamados destruidores |
|
Aviso C6279: <variable> é alocada com escalar novo, excluídos com a exclusão do array] |
|
Aviso C6280: <variable> alocados com <function>, mas excluída com <function> |
|
Aviso 6281 - ordem incorreta de operações: operadores relacionais tem precedência maior do que os operadores bit a bit |
|
Aviso C6282: Operador incorreto: atribuição de constante no contexto de booleano. Considere o uso de '= =' em vez disso |
|
Aviso C6283: <variable> é alocada com array [novo], mas excluída com delete escalar |
|
Aviso C6284: objeto passado como parâmetro '% d' Quando a seqüência de caracteres é necessária na chamada para <function>. |
|
Aviso C6285: (< diferente de zero constante > || < diferente de zero constante >) é sempre uma constante diferente de zero. Você pretendia usar o operador bit a bit- e operador? |
|
Aviso C6286: (< diferente de zero constante > || <expression>) é sempre uma constante diferente de zero. <expression> nunca é avaliado e pode ter efeitos colaterais |
|
Aviso C6287: código redundante: os subexpressões esquerdas e direita são idênticos |
|
Aviso C6288: Operador incorreto: inclusão mútua sobre & & é sempre zero. Tenha a intenção de usar a você | | em vez disso? |
|
Aviso C6289: Operador incorreto: a exclusão mútua sobre | | é sempre uma constante diferente de zero. Você pretendia usar & & em vez disso? |
|
Aviso C6290: Operação bit a bit em um resultado lógico: ! tem precedência &. Usar & & ou (! (x & y)) em vez disso |
|
Aviso C6291: Operação bit a bit em um resultado lógico: ! tem precedência maior do que |. Use | | ou (! (x | y)) em vez disso |
|
Aviso C6292: mal definido para loop: contagens até no máximo |
|
Aviso C6293: Mal definido para loop: contagem regressiva a partir do mínimo |
|
Aviso C6294: Mal definido para loop: condição inicial não satisfaz o teste. Corpo do loop não executado |
|
Aviso C6295: Mal definido para loop: <variable> os valores são do intervalo "min" para "máximo". Loop executado indefinidamente |
|
Aviso C6296: Mal definido para loop: Corpo do loop executado apenas uma vez |
|
Aviso C6297: Estouro aritmético: o valor de 32 bits é deslocado, converter o valor de 64 bits. Resultado não pode ser um valor esperado |
|
Aviso C6298: usando uma seqüência de somente leitura <pointer> como um argumento de seqüência de caracteres gravável: Isso irá tentar gravar em estática memória somente leitura e causar falhas aleatórias |
|
Aviso C6299: Comparar explicitamente um campo de bit para um tipo booleano, produzirá resultados inesperados |
|
Aviso C6302: incompatibilidade de seqüência de caracteres de formato: seqüência de caracteres passada como parâmetro <number> Quando a cadeia de caracteres largos é necessária na chamada para <function> s |
|
Aviso C6303: incompatibilidade de seqüência de caracteres de formato: cadeia de caracteres largos passada como o parâmetro <number> Quando a seqüência de caracteres é necessária na chamada para <function> |
|
Aviso C6305: potencial incompatibilidade entre as quantidades de sizeof e countof |
|
Aviso C6306: chamada incorreta para <function>: Considere o uso de <function> que aceita um va_list como um argumento. |
|
Aviso C6308: 'possível realocar' pode retornar um ponteiro nulo: atribuir um ponteiro nulo para <variable>, que é passado como um argumento para 'possível realocar', fará com que o bloco de memória original vazamento |
|
Aviso C6309: argumento <number> é nulo: não adere à especificação de função de <function> |
|
Aviso C6310: constante ilegal no filtro de exceção pode causar um comportamento inesperado |
|
Aviso C6312: Possível loop infinito: usar a constante EXCEPTION_CONTINUE_EXECUTION na expressão de filtro de exceção de uma instrução try-exceto |
|
Aviso C6313: Operador incorreto: Sinalizador com valor zero não pode ser testados com o bit a bit- e. Usar um teste de igualdade para procurar sinalizadores com valor zero |
|
Aviso C6314: Ordem incorreta de operações: bit a bit- ou tem precedência maior do que o operador de expressão condicional. Adicionar parênteses para esclarecer a intenção |
|
Aviso C6315: Ordem incorreta de operações: bit a bit- e tem precedência maior do que o bit a bit- ou. Adicionar parênteses para esclarecer a intenção |
|
Aviso C6316: Operador incorreto: testada a expressão é constante e diferente de zero. Bit a bit de uso- e para determinar se os bits forem definidos |
|
Aviso C6317: operador incorreto: não lógico-(!) não é intercambiável com aqueles complemento (~) |
|
Aviso C6318: Mal definido __try / __except: Use a constante EXCEPTION_CONTINUE_SEARCH ou outra constante que é avaliada como zero na expressão de filtro de exceção. O código no bloco do manipulador de exceção não é executado. |
|
Aviso C6319: usar o operador de vírgula em uma expressão testada faz com que o argumento esquerdo seja ignorado quando tem sem efeitos colaterais |
|
aviso C6320: expressão de filtro de exceção é a constante EXCEPTION_EXECUTE_HANDLER. Isso pode mascarar exceções que não foram criadas para ser manipulado. |
|
Aviso C6322: bloco de vazio _except |
|
Aviso 6323 - uso do operador aritmético em tipos booleanos |
|
Aviso C6324: possível uso incorreto de <function1>: Você pretendia usar <function2>? |
|
Aviso C6326: comparação de potencial de uma constante com outra constante |
|
Aviso C6327: Saturação de buffer possíveis: Cópias de SysAllocStringLen <number> caracteres da seqüência <variable> sem validar o número de caracteres a serem copiados. O código pode falhar. |
|
Aviso C6328: <type> passado como o parâmetro <number> Quando <type> é necessário chamar <function> |
|
Aviso C6331: Parâmetro inválido: passando o MEM_RELEASE e MEM_DECOMMIT em conjunto para <function> não é permitido. Isso resultará na falha desta chamada |
|
Aviso C6332: Parâmetro inválido: a transmissão de zero, como o parâmetro dwFreeType para <function> não é permitido. Isso resultará na falha desta chamada |
|
Aviso C6333: Parâmetro inválido: passando parâmetros de zero dwSize e MEM_RELEASE para <function> não é permitido. Isso resultará na falha desta chamada |
|
Aviso C6334: operador sizeof, aplicado a uma expressão com um operador pode produzir resultados inesperados |
|
Aviso C6335: vazamento de identificador de informações do processo <handlename>. |
|
Aviso C6336: operador aritmético tem precedência sobre o operador de pergunta, o uso de parênteses para esclarecer a intenção |
|
Aviso C6381: Desligamento de API <function> requer um dwReason válido ou lpMessage |
|
Aviso C6383: saturação devido à conversão de uma contagem do elemento em uma contagem de bytes do buffer: uma contagem do elemento é esperada para o parâmetro <number> na chamada para <function> |
|
Aviso C6384: sizeof um ponteiro de divisão por outro valor |
|
Aviso C6385: dados inválidos: acessando o < nome do buffer >, o tamanho legível é <size1> bytes, mas <size2> bytes podem ser lidos: Linhas: x, y |
|
Aviso C6386: saturação de buffer: acessando o < nome do buffer >, o tamanho gravável é <size1> bytes, mas <size2> bytes podem ser gravados: Linhas: x, y |
|
Aviso C6387: <argument> pode ser <value>: Isso não adere à especificação para a função < nome da função >: Linhas: x, y |
|
Aviso C6388: <argument> Talvez não seja <value>: Isso não adere à especificação para a função < nome da função >: Linhas: x, y |
|
Aviso C6400: Usando o < nome da função > para executar um comparar maiúsculas e minúsculas para string constante < nome de seqüência >. Produz resultados inesperados em localidades do inglês |
|
Aviso C6401: Usando o < nome da função > em uma localidade padrão para executar um comparar maiúsculas e minúsculas para string constante < o nome de seqüência de caracteres >. Produz resultados inesperados em localidades do inglês |
|
Aviso C6500: anotação inválido: valor para <name> propriedade é inválida |
|
Aviso C6501: conflito de anotação: <name> propriedade está em conflito com a propriedade especificada anteriormente |
|
Aviso C6503: conflito de anotação: referências não podem ser marcadas Null = Yes ou Null = talvez |
|
Aviso C6504: anotação inválido: propriedade só pode ser usada nos valores de ponteiro, um ponteiro para o membro ou tipo de matriz |
|
Aviso C6505: anotação inválido: A propriedade de MustCheck não pode ser usada nos valores do tipo void |
|
Aviso C6506: anotação inválido: <name> propriedade só pode ser usada nos valores de ponteiro ou tipos de matriz |
|
Aviso C6507: conflito de anotação: Nulo de propriedade em Deref = 0 em uma postagem a condição deve ser um subconjunto da propriedade Null a pré-condição |
|
Aviso C6508: anotação inválido: acesso de gravação não é permitido em valores const |
|
Aviso C6509: anotação inválido: 'retornar' não pode ser referenciado a partir de uma pré-condição |
|
Aviso C6510: anotação inválido: A propriedade de NullTerminated pode ser usada somente em valores de ponteiro ou o tipo de matriz |
|
Aviso C6511: anotação inválido: A propriedade MustCheck deve ser Sim ou não |
|
Aviso C6512: anotação inválido: Propriedade nula deve ser talvez se a propriedade válida é não |
|
Aviso C6513: anotação inválido: ElementSizeConst requer propriedades de tamanho adicionais |
|
Aviso C6514: anotação inválido: valor de <name> propriedade excede o tamanho da matriz |
|
Aviso C6515 - anotação inválido: <name> propriedade só pode ser usada nos valores do tipo de ponteiro |
|
Aviso C6516: anotação inválido: nenhuma propriedade especificada para <name> atributo |
|
Aviso C6517: conflito de anotação: ValidElementsConst e ValidBytesConst não podem ser especificados em buffers que não são legíveis |
|
Aviso C6518: conflito de anotação: WriteableElementsConst e WriteableBytesConst não podem ser especificada de buffers que não são graváveis |
|
Aviso C6521: especificação de tamanho inválido: * o operador só pode ser aplicado aos tipos de ponteiro |
|
Aviso C6522: especificação de tamanho inválido: expressão deve ser do tipo integral |
|
Aviso C6523: especificação de tamanho inválido: parâmetro <name> não foi encontrado |
|
Aviso C6525: especificação de tamanho inválido: o valor da propriedade não seja válido |
|
C6526 - especificação de tamanho inválido de aviso: a expressão deve ser do tipo matriz ou de ponteiro |
|
Aviso 6530: estilo de seqüência de caracteres de formato não reconhecido <name> |
|
Aviso C6535: buffer não pode ser de tamanho <n> maior que max(size_t) |
Consulte também
Conceitos
Diretrizes para escrever código seguro
Outros recursos
Analisar a qualidade do código C/C++ usando a análise de código