cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 424 An unsigned integer is being compared to zero. get_number (0, 99, 2); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 473 An unsigned integer is being compared to zero. get_number (0, 23, 2); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 498 An unsigned integer is being compared to zero. get_number (0, 59, 2); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 589 An unsigned integer is being compared to zero. get_number (0, 61, 2); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 623 An unsigned integer is being compared to zero. get_number (0, 99, 2); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 638 An unsigned integer is being compared to zero. get_number (0, 53, 2); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 644 An unsigned integer is being compared to zero. get_number (0, 6, 1); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 653 An unsigned integer is being compared to zero. get_number (0, 99, 2); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 663 An unsigned integer is being compared to zero. get_number (0, 9999, 4); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 872 An unsigned integer is being compared to zero. get_alt_number (0, 23, 2); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 892 An unsigned integer is being compared to zero. get_alt_number (0, 59, 2); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 897 An unsigned integer is being compared to zero. get_alt_number (0, 61, 2); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 903 An unsigned integer is being compared to zero. get_alt_number (0, 53, 2); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 909 An unsigned integer is being compared to zero. get_alt_number (0, 6, 1); ^ cc-1183 c99: WARNING File = lib/replace/strptime.c, Line = 915 An unsigned integer is being compared to zero. get_alt_number (0, 99, 2); ^
This one is still in 3.0.25 release.
This is because we have: size_t val; Then in the get number macro: if (val < from || val > to) \ return NULL; where 'from' and 'to' are the first two argmuents: get_number (0, 99, 2); so we have an always false size_t < 0 comparison. But it doesn't matter, because in these cases we are only interested in ensuring it is less than 'to'. GCC presumably looks at the branch condition as a whole. So we can close this with the IRIX compiler keeping its honour. It wasn't *completely* out of its mind.