spectre
Specifické pro Microsoft
Říká kompilátoru, aby nevkládal pokyny pro spekulativní spuštění spectre varianty 1 pro funkci.
Syntaxe
__declspec( spectre(nomitigation) )
Poznámky
Možnost kompilátoru /Qspectre způsobí, že kompilátor vloží spekulativní pokyny pro spuštění. Vloží se tam, kde analýza indikuje, že existuje ohrožení zabezpečení Spectre varianty 1. Konkrétní pokyny generované závisí na procesoru. I když by tyto pokyny měly mít minimální dopad na velikost nebo výkon kódu, můžou existovat případy, kdy ohrožení zabezpečení neovlivní váš kód a vyžaduje maximální výkon.
Odborná analýza může určit, že funkce je v bezpečí před chybou obejití spectre varianty 1. V takovém případě můžete potlačit generování kódu omezení rizik v rámci funkce použitím __declspec(spectre(nomitigation))
deklarace funkce.
Upozornění
Pokyny pro spekulativní provedení /Qspectre poskytují důležitou ochranu zabezpečení a mají zanedbatelný vliv na výkon. Proto je doporučeno je nepotlačovat vyjma vzácných případů, kdy je výkon funkce kriticky důležitý a funkce je známa jako bezpečná.
Příklad
Následující kód ukazuje, jak používat __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;
}
END Microsoft Specific
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro