The ctype functions will sometimes be passed negative numbers, such as EOF. Some of the previous implementations didn't handle these properly. Additionally, the tests did not check any negative numbers. These problems have been fixed. This patch fixes https://github.com/llvm/llvm-project/issues/62000 Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D147813