I'm creating a D operating system kernel. Thread local storage (TLS) is not available so it cannot be used. My D kernel compiles correctly with DMD but it fails with runtime errors on LDC. I guess LDC promotes some stack variables to TLS for example:
void f() {
ubyte[15] a; // works
ubyte[16] b; // does not work
__gshared ubyte[16] c; // works
MyStruct d; // does not work
}
How do I make LDC use the stack only? Should I file a bug report?