Freigeben über


C6509

Aktualisiert: November 2007

C6509

Warnung C6509: Ungültige Anmerkung: Auf "return" kann nicht von einer Vorbedingung aus verwiesen werden.

Diese Warnung gibt an, dass die return -[Ausdruck]-Anweisung nicht in einer Vorbedingung verwendet werden kann. Mithilfe der return-Anweisung wird die Ausführung einer Funktion beendet und die Steuerung an die aufrufende Funktion zurückgegeben. Der Wert des Ausdrucks wird, wenn der Ausdruck vorhanden ist, an die aufrufende Funktion zurückgegeben.

Da eine Funktion die return-Anweisung zum Zurückgeben von Werten verwenden kann, können Sie sie als Eigenschaftenwert zur Verwendung in einer Nachbedingung verwenden.

Beispiel

Im folgenden Code wird diese Warnung generiert, da in einer Vorbedingung 'return' verwendet wird:

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

Um diese Warnung zu korrigieren, verwenden Sie 'return' in einer Nachbedingung, wie im folgenden Beispielcode dargestellt:

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