spectre

Microsoft-spezifisch

Weist den Compiler an, keine Spectre Variant 1 spekulative Ausführungsbarrierenanweisungen für eine Funktion einzufügen.

Syntax

__declspec( Spectre(nomitigation) )

Hinweise

Die /Qspectre-Compileroption bewirkt, dass der Compiler spekulative Ausführungsbarrierenanweisungen einfügt. Sie werden eingefügt, wo die Analyse angibt, dass eine Sicherheitslücke vom Typ Spectre Variant 1 vorhanden ist. Die angegebenen Anweisungen hängen vom Prozessor ab. Diese Anweisungen sollten zwar minimale Auswirkungen auf die Codegröße oder -leistung haben, es kann jedoch Fälle geben, in denen Ihr Code nicht von der Sicherheitsanfälligkeit betroffen ist und eine maximale Leistung erfordert.

Expertenanalyse kann feststellen, dass eine Funktion von einem Spectre Variant 1-Begrenzungs-Check-Bypass-Fehler sicher ist. In diesem Fall können Sie die Generierung von Entschärfungscode innerhalb einer Funktion unterdrücken, indem Sie sie auf die Funktionsdeklaration anwenden __declspec(spectre(nomitigation)) .

Achtung

Die Anweisungen zu /Qspectre spekulativen Ausführungsbarrieren bieten einen wichtigen Sicherheitsschutz und haben eine vernachlässigbare Auswirkung auf die Leistung. Daher empfiehlt es sich, sie nicht zu unterdrücken, außer in dem seltenen Fall, in dem die Leistung einer Funktion ein wichtiger Aspekt ist und die Funktion bekanntermaßen sicher ist.

Beispiel

Im folgenden Code wird die Verwendung von __declspec(spectre(nomitigation))veranschaulicht.

// compile with: /c /Qspectre
static __declspec(spectre(nomitigation))
int noSpectreIssues() {
    // No Spectre variant 1 vulnerability here
    // ...
    return 0;
}

int main() {
    noSpectreIssues();
    return 0;
}

Ende Microsoft-spezifisch

Siehe auch

__declspec
Schlüsselwörter
/Qspectre