no warning about size_t usage


I don’t know if it is related with DS or Compiler or somethingelse but i had a problem today.
i skipped the point of comparing int and size_t types in my code.

if(count > strlen(myString1) - strlen(mystring2) )
MyPrintFunc(“count is greater”);
MyPrintFunc(“count is less”);

where count=0, strlen(myString1)=12, strlen(myString2)=14 then
I expected if(0 > -2) case will be generated and “count is greater” message will be printed.
But no. It generated if(0 > 2) case. Because strlen return type is size_t which is an unsigned interger. So it always takes possitive number.

This is my simple mispoint. i overlooked the case. But DS did not warm me about it. Shouldnt it warm about similar cases? Or All the responsibilities have been pushed on developers?



Yes,the warnings you receive are compiler dependent(based on the optimisation supported by the compiler).