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 特定的

另請參閱

__declspec
關鍵字
/Qspectre