args.c: fix range check in int/uint
this also clears the remaining -Wshorten-64-to-32 warnings in this file.
the previous patch ported from libvpx was incomplete due to:
d3a7576fb Add compiler flag -Wsign-compare
Change-Id: I105fa2342073dfa8bd0619b4282435fb6568f5c9
diff --git a/args.c b/args.c
index 1772c00..5711035 100644
--- a/args.c
+++ b/args.c
@@ -120,15 +120,13 @@
}
unsigned int arg_parse_uint(const struct arg *arg) {
- uint32_t rawval;
char *endptr;
-
- rawval = strtoul(arg->val, &endptr, 10);
+ const unsigned long rawval = strtoul(arg->val, &endptr, 10); // NOLINT
if (arg->val[0] != '\0' && endptr[0] == '\0') {
if (rawval <= UINT_MAX) return (unsigned int)rawval;
- die("Option %s: Value %ld out of range for unsigned int\n", arg->name,
+ die("Option %s: Value %lu out of range for unsigned int\n", arg->name,
rawval);
}
@@ -137,10 +135,8 @@
}
int arg_parse_int(const struct arg *arg) {
- int32_t rawval;
char *endptr;
-
- rawval = strtol(arg->val, &endptr, 10);
+ const long rawval = strtol(arg->val, &endptr, 10); // NOLINT
if (arg->val[0] != '\0' && endptr[0] == '\0') {
if (rawval >= INT_MIN && rawval <= INT_MAX) return (int)rawval;