Hi all,
I would like to discover why the compiler issues warning #68 (integer conversion resulted in a change of sign) for the code below. It is issued only for -O3, "Optimize for Time" enabled and when the function is inlined (__inline keyword).
I have tried to cast anything which could be implicitly converted to int back to uint, but no chance to get rid of this warning.
armcc.exe V4.0.0.524
static __inline uint8_t IsDecDigit(char c) { return ( (c >= '0') && (c <= '9')); } ... static void UseIt(void) { char *name; ... /* Initialize the name to something useful */ ... if ( (IsDecDigit(name[3])) /* <- warning issued for this expression */ && (IsDecDigit(name[4])) && (IsDecDigit(name[5])) && (IsDecDigit(name[6])) { ... } }
Thanks for responses.
Regards Pavel
What does "inline" do...? have a look at compiler (*.txt) assembly output...