Compartilhar via


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