spectre

Section spécifique à Microsoft

Indique au compilateur de ne pas insérer d’instructions de barrière d’exécution spéculative spectre variant 1 pour une fonction.

Syntaxe

__declspec( spectre(nomitigation) )

Notes

L’option du compilateur /Qspectre entraîne l’insertion d’instructions de barrière d’exécution spéculative. Ils sont insérés où l’analyse indique qu’une vulnérabilité de sécurité spectre variant 1 existe. Les instructions spécifiques émises dépendent du processeur. Bien que ces instructions aient un impact minimal sur la taille ou les performances du code, il peut arriver que votre code ne soit pas affecté par la vulnérabilité et nécessite des performances maximales.

Une analyse d’experts peut déterminer qu’une fonction est sécurisée à partir d’une limite spectre variant 1 case activée défaut de contournement. Dans ce cas, vous pouvez supprimer la génération de code d’atténuation au sein d’une fonction en appliquant __declspec(spectre(nomitigation)) la déclaration de fonction.

Attention

Les instructions de barrière d’exécution spéculative /Qspectre fournissent une protection de sécurité importante et ont un impact négligeable sur les performances. Par conséquent, nous vous recommandons de ne pas les supprimer, sauf dans la rare éventualité où les performances d'une fonction est un problème critique et où la fonction est réputée pour être sécurisée.

Exemple

Le code suivant illustre l’utilisation de __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;
}

FIN de la section spécifique à Microsoft

Voir aussi

__declspec
Mots clés
/Qspectre