--- description: "Learn more about: spectre" title: "spectre" ms.date: "01/23/2018" f1_keywords: ["spectre_cpp", "spectre", "nomitigation"] helpviewer_keywords: ["__declspec keyword (C++), spectre", "spectre __declspec keyword"] --- # spectre **Microsoft Specific** Tells the compiler not to insert Spectre variant 1 speculative execution barrier instructions for a function. ## Syntax > **__declspec( spectre(nomitigation) )** ## Remarks The [/Qspectre](../build/reference/qspectre.md) compiler option causes the compiler to insert speculative execution barrier instructions. They're inserted where analysis indicates that a Spectre variant 1 security vulnerability exists. The specific instructions emitted depend on the processor. While these instructions should have a minimal impact on code size or performance, there may be cases where your code is not affected by the vulnerability, and requires maximum performance. Expert analysis might determine that a function is safe from a Spectre variant 1 bounds check bypass defect. In that case, you can suppress the generation of mitigation code within a function by applying `__declspec(spectre(nomitigation))` to the function declaration. > [!CAUTION] > The **/Qspectre** speculative execution barrier instructions provide important security protection and have a negligible affect on performance. Therefore, we recommend that you do not suppress them, except in the rare case where the performance of a function is a critical concern and the function is known to be safe. ## Example The following code shows how to use `__declspec(spectre(nomitigation))`. ```cpp // 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** ## See also [__declspec](../cpp/declspec.md)
[Keywords](../cpp/keywords-cpp.md)
[/Qspectre](../build/reference/qspectre.md)