Compartir a través de


spectre

Específicos de Microsoft

Indica al compilador que no inserte instrucciones de barrera de ejecución especulativa de la variante 1 de Spectre para una función.

Sintaxis

__declspec( spectre(nomitigation) )

Comentarios

La opción del compilador /Qspectre hace que el compilador inserte instrucciones de barrera de ejecución especulativa. Se insertan donde el análisis indica que existe una vulnerabilidad de seguridad de la variante 1 de Spectre. Las instrucciones específicas emitidas dependen del procesador. Aunque estas instrucciones deben tener un impacto mínimo en el tamaño o el rendimiento del código, puede haber casos en los que el código no se vea afectado por la vulnerabilidad y requiera un rendimiento máximo.

El análisis experto puede determinar que una función es segura de un defecto de derivación de comprobación de límites de la variante 1 de Spectre. En ese caso, se puede suprimir la generación de código de mitigación dentro de una función aplicando __declspec(spectre(nomitigation)) a la declaración de función.

Precaución

Las instrucciones de la barrera de ejecución especulativa /Qspectre proporcionan una protección de seguridad importante y tienen un efecto insignificante en el rendimiento. Por tanto, se recomienda que no las suprima, excepto en el caso poco frecuente de que el rendimiento de una función tenga una importancia crítica y se sepa que la función está segura.

Ejemplo

En el siguiente código se muestra cómo 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;
}

FIN de Específicos de Microsoft

Consulte también

__declspec
Palabras clave
/Qspectre