Это ошибка в реализации Coroutines TS, поставляемой с Clang 6.0?

Ниже приведен воспроизводимый пример:

AnyFutureWithInnerPromise<void> f()
{
char arr[16]; // crash here due to segmentation fault
co_return;
}

int main()
{
f().get();
}

GDB говорит мне, аварийная строка:

movaps XMMWORD PTR [rcx+0xb8],xmm0

Причина в том, что movaps требует, чтобы его операнды были выровнены по 128 битам, но XMMWORD PTR [rcx+0xb8] это не тот случай.

Если я изменю код следующим образом:

AnyFutureWithInnerPromise<void> f()
{
std::uint64_t n; // add 8-bytes to make arr 128-bit aligned
char arr[16]; // ok now
co_return;
}

Новая инструкция по сборке:

movaps XMMWORD PTR [rcx+0xc0],xmm0

Это ошибка в реализации Coroutines TS, поставляемой с Clang 6.0?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]