Поделиться через


C6509

Обновлен: Ноябрь 2007

C6509

Предупреждение C6509: недопустимая аннотация. Нельзя ссылаться на "return" из предварительного условия.

Это предупреждение означает, что оператор return [выражение] нельзя использовать в предварительном условии. Оператор return используется для прекращения выполнения функции и возврата управления вызывающей функции. Значение выражения, если есть выражение, возвращается вызывающей функции.

Функция может использовать оператор return для возврата значений, поэтому можно указывать ее в качестве значения свойства в условии post.

Пример

Это предупреждение возникает в следующем примере кода, поскольку "return" используется в предварительном условии.

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

Чтобы исправить это предупреждение, используйте "return" используется в условии post, как показано в следующем примере кода.

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