Originally posted by: ThinkOpenly
"-qchars=signed" ("-fsigned-char" for GCC) is a big lever to throw, which could have undesired effects in other code.
It can be argued that since a "char" has an architecturally defined signedness, it is more appropriate to change the variable declarations to the match the desired behavior. In other words, if the signedness of a char variable matters, declare that variable as "signed char" (or "unsigned char"). (I'm ignoring whether such changes are practical.)
Note that limits.h defines, for "signed char" minimum value:
# define SCHAR_MIN (-128)
and then defines CHAR_MIN to that or 0, based on the architecture's default signedness for the "char" type.
#C/C++andFortran#Ask-Question-Here--General-Compiler-Q-and-A