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