Partager via


C6509

Mise à jour : novembre 2007

C6509

Avertissement C6509 : Annotation non valide : 'return' ne peut pas être référencé à partir d'une précondition

Cet avertissement indique que l'instruction return [expression] ne peut pas être utilisée dans une condition préalable. L'instruction return est utilisée pour mettre fin à l'exécution d'une fonction et retourner le contrôle à la fonction d'appel. La valeur de l'expression, si cette dernière est présente, est retournée à la fonction d'appel.

Étant donné qu'une fonction peut utiliser l'instruction return pour retourner des valeurs, vous êtes autorisé à la spécifier comme la valeur de propriété à utiliser dans une condition Post.

Exemple

Le code suivant génère cet avertissement car 'return' est utilisé dans une condition préalable :

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

Pour corriger cet avertissement, utilisez 'return' dans une condition Post, comme indiqué dans l'exemple de code suivant :

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