
The behaviour of strncmp is undefined if either string pointer is null (https://en.cppreference.com/w/cpp/string/byte/strncmp.html). I've copied the logic over from Compare to another CharBlock, which had code to avoid UB in memcmp. The test Preprocessing/kind-suffix.F90 was failing with UBSAN enabled, and now passes.