Compartilhar via


C6517

Aviso C6517: conflito de anotação: ValidElementsConst e ValidBytesConst não podem ser especificados em buffers que não são legíveis

Este aviso indica que as propriedades ValidElementsConst e ValidBytesConst não têm acesso de leitura obrigatório. É possível usar essas propriedades para anotar um parâmetro sem fornecer acesso de leitura.

Exemplo

O código a seguir gera esse aviso, porque o acesso de leitura não é concedido o buffer:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(ValidBytesConst=10 )][SA_Pre( Deref=1, Access=SA_Write )] char* buffer );

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;

void f([Pre( ValidBytesConst=10 )][Pre( Deref=1, Access=Write )] char* buffer );

Para corrigir esse aviso, conceda acesso de leitura, conforme mostrado no código a seguir:

// C
#include <CodeAnalysis\SourceAnnotations.h>

void f([SA_Pre(ValidBytesConst=10 )][SA_Pre( Deref=1, Access=SA_ReadWrite )] char* buffer ); 

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;

void f([Pre( ValidBytesConst=10 )][Pre( Deref=1, Access=ReadWrite )] char* buffer ); 

Consulte também

Outros recursos

Propriedades de anotação