Partilhar via


spectre

Seção específica da Microsoft

Informa ao compilador para não inserir instruções de barreira de execução especulativa da variante 1 do Spectre para uma função.

Sintaxe

__declspec( spectre(nomitigation) )

Comentários

A opção do compilador /Qspectre faz com que o compilador insira instruções de barreira de execução especulativa. Eles são inseridos onde a análise indica que existe uma vulnerabilidade de segurança da variante 1 do Spectre. As instruções específicas emitidas dependem do processador. Embora essas instruções devam ter um impacto mínimo no tamanho ou no desempenho do código, pode haver casos em que o código não é afetado pela vulnerabilidade e requer o máximo de desempenho.

A análise de especialistas pode determinar que uma função está a salvo de um defeito de bypass de verificação de limites da variante 1 do Spectre. Nesse caso, você pode suprimir a geração de código de mitigação dentro de uma função aplicando-se __declspec(spectre(nomitigation)) à declaração de função.

Cuidado

As instruções de barreira de execução especulativa /Qspectre fornecem proteção de segurança importante e têm um efeito insignificante no desempenho. Portanto, recomendamos que você não suprime, exceto em casos raros em que o desempenho de uma função for um problema crítico e a função é comprovadamente segura.

Exemplo

O código a seguir mostra como usar __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;
}

Fim da seção específica da Microsoft

Confira também

__declspec
Palavras-chave
/Qspectre