C6509
Actualización: noviembre 2007
C6509
Advertencia C6509: Anotación no válida: no se puede hacer referencia a 'return' desde una condición previa
Esta advertencia indica que la instrucción return [expresión] no se puede utilizar en una condición previa. La instrucción return se utiliza para finalizar la ejecución de una función y devolver el control a la función de llamada. El valor de la expresión, si existe, se devuelve a la función de llamada.
Debido a que una función puede utilizar la instrucción return para devolver valores, está permitido especificarla como propiedad para su uso en una condición posterior.
Ejemplo
El código siguiente genera esta advertencia porque se utiliza 'return' en una condición previa:
// C
#include <CodeAnalysis\SourceAnnotations.h>
int f([SA_Pre(ValidElements="return")] char *pc);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
int f([Pre(ValidElements="return")] char *pc);
Para corregir esta advertencia, utilice 'return' en una condición posterior, como se muestra en el código de ejemplo siguiente:
// C
#include <CodeAnalysis\SourceAnnotations.h>
[returnvalue:SA_Post(MustCheck=SA_Yes)]int f(
[SA_Post(ValidElements="return")] char *pc
);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
[returnvalue:Post(MustCheck=Yes)]int f(
[Post(ValidElements="return")] char *pc
);