You're welcome Robert.
I made some more tests, specifically using the zero initialization for structures:
struct processed_utf_bytes previous = {0};
This, as should be expected, works.
But compiling your header file triggers an internal compiler error:
fatal error: Internal error: cast_tree(#1).
Maybe Pelle can have a look on it.
On the other hand, using the same initialization in a simple program as below compiles and runs without errors:
#include <stdio.h>
#include <immintrin.h>
struct test__m128i
{
__m128i rawbytes;
__m128i high_nibbles;
__m128i carried_continuations;
};
int main(int argc, char *argv[])
{
struct test__m128i t = {0};
printf("Hello World! %lld\n", *(long long int *)&t);
}
At this point is hard to say where the problem is, probably inside the compiler itself.
Let wait for Pelle...