C6509
Aviso C6509: anotação inválido: 'retornar' não pode ser referenciado a partir de uma pré-condição
Este aviso indica que o return a instrução de [expressão] não pode ser usada em uma pré-condição. O return declaração é usada para encerrar a execução de uma função e retornar o controle para a função de chamada. O valor da expressão, se a expressão estiver presente, é retornado para a função de chamada.
Porque uma função pode usar o return a instrução para retornar valores, você pode especificá-lo como um valor de propriedade para uso em uma condição de post.
Exemplo
O código a seguir gera este aviso porque 'return' é usado em uma pré-condição:
// 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 corrigir esse aviso, use 'return' em uma condição de post, conforme mostrado no exemplo de código seguir:
// 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
);