spectre
Specyficzne dla firmy Microsoft
Informuje kompilator, aby nie wstawiał instrukcji bariery wykonywania spekulatywnego spectre wariantu 1 dla funkcji.
Składnia
__declspec( spectre(nomitigation) )
Uwagi
Opcja /Qspectre kompilatora powoduje, że kompilator wstawia instrukcje bariery wykonywania spekulatywnego. Są one wstawiane, gdzie analiza wskazuje, że istnieje luka w zabezpieczeniach spectre variant 1. Określone instrukcje emitowane zależą od procesora. Chociaż te instrukcje powinny mieć minimalny wpływ na rozmiar kodu lub wydajność, mogą wystąpić przypadki, w których kod nie ma wpływu na lukę w zabezpieczeniach i wymaga maksymalnej wydajności.
Analiza ekspertów może określić, że funkcja jest bezpieczna od wady obejścia w wariantie spectre 1. W takim przypadku można pominąć generowanie kodu ograniczania ryzyka w ramach funkcji, stosując __declspec(spectre(nomitigation))
do deklaracji funkcji.
Uwaga
/Qspectre spekulacyjne instrukcje bariery wykonywania zapewniają ważną ochronę zabezpieczeń i mają niewielki wpływ na wydajność. Dlatego zaleca się, aby nie pomijać ich poza rzadkimi przypadkami, gdy wydajność funkcji odgrywa krytyczną rolę i wiadomo, że funkcja jest bezpieczna.
Przykład
Poniższy kod pokazuje, jak używać polecenia __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 Specific
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla