Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Блок, относящийся только к системам Майкрософт
Указывает компилятору не вставлять инструкции по барьеру выполнения Spectre версии 1 для функции.
Синтаксис
__declspec( spectre(nomitigation) )
Замечания
Параметр компилятора /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;
}
Завершение блока, относящегося только к системам Майкрософт