if (err)
return err;
*i = l;
- /* Beware truncation... */
- if (*i != l)
+ /* Beware truncation, but don't generate untestable code. */
+ if (sizeof(*i) != sizeof(l) && *i != l)
return arg_bad("value '%s' does not fit into an integer", arg);
return err;
}
return err;
*l = ll;
- if (*l != ll)
+ /* Beware truncation, but don't generate untestable code. */
+ if (sizeof(*l) != sizeof(ll) && *l != ll)
return arg_bad("value '%s' does not fit into a long", arg);
return NULL;
}
if (ll < 0)
return arg_bad("'%s' is negative but destination is unsigned", arg);
*ul = ll;
- if (*ul != ll)
+ /* Beware truncation, but don't generate untestable code. */
+ if (sizeof(*ul) != sizeof(ll) && *ul != ll)
return arg_bad("value '%s' does not fit into an unsigned long", arg);
return NULL;
}