Export (0) Print
Expand All

C6517

warning C6517: annotation conflict: ValidElementsConst and ValidBytesConst may not be specified on the buffers that are not readable

This warning indicates that ValidElementsConst and ValidBytesConst properties do not have the required read access. You cannot use these properties to annotate a parameter without providing read access.

The following code generates this warning because read access is not granted on the 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 );

To correct this warning, grant read access as shown in the following code:

// 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 ); 

Community Additions

ADD
Show:
© 2014 Microsoft