I think it compiles in 64bit mode by default. This assert passes without -m64: static assert(size_t.sizeof == 8); The crash seems related to stdio. It doesn't happen with -m32.