spectre

Sezione specifica Microsoft

Indica al compilatore di non inserire le istruzioni della barriera di esecuzione speculativa Spectre variant 1 per una funzione.

Sintassi

__declspec( spectre(nomitigation) )

Osservazioni:

L'opzione del compilatore /Qspectre fa in modo che il compilatore inserisca istruzioni per la barriera di esecuzione speculativa. Vengono inseriti dove l'analisi indica che esiste una vulnerabilità di sicurezza spectre variante 1. Le istruzioni specifiche generate dipendono dal processore. Anche se queste istruzioni devono avere un impatto minimo sulle dimensioni o sulle prestazioni del codice, possono verificarsi casi in cui il codice non è interessato dalla vulnerabilità e richiede prestazioni massime.

L'analisi degli esperti potrebbe determinare che una funzione è sicura da un difetto di bypass di controllo spectre variante 1. In tal caso, è possibile eliminare la generazione del codice di mitigazione all'interno di una funzione applicando __declspec(spectre(nomitigation)) alla dichiarazione di funzione.

Attenzione

Le istruzioni della barriera di esecuzione speculativa /Qspectre forniscono una protezione di sicurezza importante e hanno un impatto trascurabile sulle prestazioni. Di conseguenza, è consigliabile non eliminarli, tranne nel raro caso in cui le prestazioni di una funzione siano un problema critico e la sicurezza della funzione sia nota.

Esempio

L'esempio di codice mostra come usare un oggetto __declspec(spectre(nomitigation)).

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

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

Fine sezione specifica Microsoft

Vedi anche

__declspec
Parole chiave
/Qspectre