“There is no meaningful sense in which a thread-unsafe language provides memory safety.”

Ralf Jung makes a clean argument that the whole “memory safe but not thread safe” distinction is marketing nonsense. Go’s data races can trigger segfaults and memory corruption just like C. The actual dividing line is whether a language can produce undefined behavior, and Go absolutely can. Languages that let concurrent programs silently corrupt memory don’t get to claim the safety label just because they have a garbage collector.