Closed tkoenig1 closed 1 year ago
Same with
#include <stdint.h>
typedef unsigned char uchar_t;
void
unpack (uchar_t size[], uint64_t packed[], uint64_t unpacked[], uint64_t count)
{
uint64_t len, bit = 0, word = 1, container1, container2 = packed[0];
for (unsigned int i = 0; i < count; i++)
{
container1 = container2;
container2 = packed[word++];
__uint128_t cont;
cont = ((__uint128_t)container2 << 64) | container1;
do
{
len = size[i];
unpacked[i] = (cont >> bit) & ~(~0 << len);
bit += len;
}
while (bit < 64);
bit &= 63;
}
}
One additional remark. Up to now, I've ben using Release compilers, now I switched to Debug (which, presumably, you are also using). This might explain some of the differences we have seen so far.
I do compile to Debug. Compilation is much slower than Release and the final link step uses a lot of memory. When I compile to Debug I limit the number of targets to 3 or 4.
Try again with commit c66d22534c5a05431beb6fbd7573c66aff89f12b
Works now. Thanks!
... and closing.
Another one from the gcc testsuite.
yields the error message
pr85592-3.zip