Compartir a través de


C6516

Advertencia C6516: Anotación no válida: no se especificaron propiedades del atributo <nombre>

[!NOTA]

La advertencia sólo aparece en el código que está utilizando una versión desusada del lenguaje de anotación de código fuente (SAL).Se recomienda migrar el código para usar la última versión de SAL.Para obtener más información, vea Utilizar anotaciones SAL para reducir defectos de código de C/C++.

Esta advertencia indica que no se ha especificado ninguna propiedad en el atributo o bien la propiedad que se ha especificado no es válida; por consiguiente, el atributo no puede considerarse completo.

Ejemplo

El código siguiente genera esta advertencia porque Deref=1 sólo especifica el nivel de direccionamiento indirecto, pero esta información por sí sola no le sirve a la herramienta de análisis:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1)] char* pc);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1)] char* pc);

Para corregir esta advertencia, se necesita otra propiedad, como Access, para indicar a la herramienta de análisis qué se debe aplicar a los elementos que son objeto de la eliminación de referencias.El código siguiente corrige esta advertencia:

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

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1, Access=Read)] char* pc);