Я пишу на C и компилирую с использованием clang.Я пытаюсь развернуть петлю.Цикл не развернут и есть предупреждение.
цикл не развернут: оптимизатору не удалось выполнить запрошенное преобразование;преобразование может быть отключено или указано как часть неподдерживаемого порядка преобразования [-Wpass-failed = transform-warning]
Результаты можно найти здесь: https://godbolt.org/z/4flN-k
int foo(int c)
{
size_t w = 0;
size_t i = sizeof(size_t);
#pragma unroll
while(i--)
{
w = (w << 8) | c;
}
return w;
}
GCCможно развернуть цикл с -O3, и поэтому я предполагаю, что clang также должен развернуть его.