spectre
Microsoft 特定的
告知編譯器不要插入函式的 Spectre Variant 1 推測執行屏障指令。
語法
__declspec(幽靈(nomitigigation) )
備註
/Qspectre 編譯器選項會導致編譯器插入推測性執行屏障指令。 其會插入分析指出 Spectre 變體 1 安全性弱點存在的位置。 發出的特定指令取決於處理器。 雖然這些指示對程式碼大小或效能的影回應該最小,但在某些情況下,您的程式碼不會受到弱點的影響,而且需要最大的效能。
專家分析可能會判斷函式是否安全,不受 Spectre 變化 1 界限檢查旁路缺陷。 在此情況下,您可以套用 __declspec(spectre(nomitigation))
至函式宣告,以隱藏函式內的風險降低程式碼產生。
警告
/Qspectre 推測性執行屏障指示提供重要的安全性保護,對效能造成微不足道的影響。 因此,除了在少數函式的效能為重要考量,以及函式已知為安全的情況以外,建議您不要抑制這些檢查。
範例
下列程式碼顯示如何使用 __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 特定的
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應