When comparing a signed char and unsigned char, the following warning is printed:
warning 185: comparison of 'signed char' with 'unsigned char' requires promotion to int
1. When performing arithmetics (*, /, %) on the signed operand, only with % the warning is printed. What is the logic behind this?
2. When performing / or % on an unsigned bitfield, the warning is confusingly printed (while it is not printed when performing a direct comparison). Why?
SDCC : mcs51/gbz80/z80/ds390/pic16/pic14/TININative/ds400/hc08 2.9.7 #5677 (Feb 7 2010) (MINGW32)