Anzeigen: Delphi C++
Anzeigeeinstellungen

C++-Audits

Aus RAD Studio XE2
Wechseln zu: Navigation, Suche

Nach oben zu Quelltext-Audits und -Metriken


Die folgende Tabelle enthält die C++-Quelltext-Audits samt einer Kurzbeschreibung.

C++-Audits

Audit Beschreibung
Core:
AdjustedReturnValue

Funktionsaufruf gibt nicht den erwarteten Wert zurück.

AttributeNonNull

Überprüfung auf als Argumente an eine Funktion übergebene Null-Zeiger, deren Argumente mit dem Attribut nonnull gekennzeichnet sind.

CastSize

Überprüfung, ob bei der Typumwandlung einer symbolischen Region in den Typ T (mit malloc) die Größe ein Vielfaches der Größe von T ist.

CastToStruct

Überprüfung auf Typumwandlung eines Nicht-struct-Zeigers in einen struct-Zeiger.

FixedAddr

Überprüfung auf Zuweisung einer festen Adresse zu einem Zeiger.

PointerArithm

Überprüfung auf Zeigerarithmetik außerhalb von Array-Elementen.

PointerSub

Überprüfung auf Zeigersubtraktionen bei zwei Zeigern, die auf unterschiedliche Speicherblöcke zeigen.

SizeofPtr

Warnung bei unbeabsichtigter Verwendung von sizeof() bei Zeigerausdrücken.

NullDereference

Überprüfung auf Dereferenzierungen von Null-Zeigern.

DivideZero

Überprüfung auf Division durch Null.

NoReturnFunctions
Überprüfung auf Funktionen, die nicht zum Aufrufer zurückkehren.
UndefReturn

Überprüfung auf an den Aufrufer zurückgegebene, nicht initialisierte Werte.

Branch

Überprüfung auf als Verzweigungsbedingungen verwendete, nicht initialisierte Werte.

ArraySubscript

Überprüfung auf als Array-Indizes verwendete, nicht initialisierte Werte.

Assign

Überprüfung auf Zuweisung von nicht initialisierten Werten.

StackAddressEscape

Überprüfung, ob Adressen auf Stack-Speicher von der Funktion genutzt werden.

UndefinedBinaryOperatorResult

Überprüfung auf undefinierte Ergebnisse von Nicht-Zuweisungsbinäroperatoren.

VLASize

Überprüfung auf Deklarationen von Arrays mit variabler Länge (Variable LängeArrays) mit undefinierter Größe oder einer Größe von Null.

Sicherheit:
ArrayBound

Warnung bei Pufferüberläufen (ältere Prüfung).

ArrayBoundV2

Warnung bei Pufferüberläufen (neuere Prüfung).

ReturnPtrRange

Überprüfung auf einen an die Aufrufer zurückgegebenen Zeiger, der sich außerhalb des Bereichs befindet.

SecuritySyntactic

Schnelle API-Sicherheitsprüfungen ausführen, für die kein Datenfluss erforderlich ist.

"Toter" Quellcode:
DeadStores

Überprüfung auf in Variablen gespeicherte Werte, die nie gelesen werden.

IdempotentOperations

Warnung bei idempotenten Operationen.

UnreachableCode

Überprüfung auf unerreichbaren Code.

Sonstiges:
CFPV

Vergleichen von Gleitkommawerten (Comparing floating-point values).

CVFCD

Aufrufen von virtuellen Funktionen aus Konstruktoren und dem Destruktor (Calling virtual functions from constructors and destructor).

DCPC

Definieren des Kopierkonstruktors (Define copy constructor).

IVNU

Iterationsvariable wird im Schleifenrumpf nicht verwendet (Iteration variable is not used in loop body).

OPM

Überschreiben der "private"-Methode (Overriding private method).

RINF

Neudefinition einer geerbten nicht-virtuellen Funktion (Redefining an inherited nonvirtual function).

SFS

Verdächtige for-Anweisung (Suspicious for statement).

SSSIDC

switch-Anweisung sollte default-case enthalten (switch statement should include the default case).

MCC

Methode kann als const definiert werden (Method can be made const).

NC

Namenskonventionen (Naming conventions).

OROT

Überschreiben von zusammengehörigen Operatoren als Ganzes (Overwrite related operators together).

PCC

Parameter kann als const definiert werden (Parameter can be made const).

PVD

Bereitstellen eines virtuellen Destruktors (Provide virtual destructor).

UCSC

Verwenden von Typumwandlungen im C++-Stil (Use C++ style casts).

PMSNT

Methoden mit demselben Namen zusammen platzieren (Place Methods with Same Name Together).

RCD

Eingeschränkte Klassendeklaration (Restricted Class Declaration).

ASO

Zuweisungsoperator (Assignment operator).

CIUCFL

Komplexe Initialisierung oder Update-Klausel in for-Schleife (Complex Initialization or Update Clause in for Loop).

CIL

Konstruktor-Initialisierungsliste (Constructor Initialization List).

ANR

Zugreifen auf Null-Referenz (Accessing Null Reference).

Siehe auch

Frühere Versionen
In anderen Sprachen