MSV не игнорируют летучие ключевое слово в режиме X64. ошибка?C++

Программы на C++. Форум разработчиков
Anonymous
MSV не игнорируют летучие ключевое слово в режиме X64. ошибка?

Сообщение Anonymous »

Давайте посмотрим на этот код < /p>
void long_jmp();
void set_jmp();

void test()
{
volatile bool f = false;
set_jmp();
//
Нет никаких проверок для if (! f) < /code>, нет никаких условных прыжков.
Я предполагаю, что это ошибка компилятора MSVC. Отдельный вопрос, как в этом случае эта логика?
Real Code, с Winapi < /p>
void test()
{
volatile bool f = false;
CONTEXT ctx;
RtlCaptureContext(&ctx);

if (!f)
{
f = true;
ZwContinue(&ctx, FALSE);
}
}

Функции очень похожи на setjmp и longjmp , но rtlcapturecontext не возвращают значение, поэтому невозможно записать
void jtest()
{
CONTEXT ctx;

if (!RtlCaptureContext(&ctx))
{
ZwContinue(&ctx, FALSE);
}
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... 4-mode-bug

Вернуться в «C++»