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