Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.
L’analyse d’experts peut déterminer qu’une fonction est sûre d’un défaut de contournement de contournement de spectre variant 1. 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