opt: increase testing coverage on 64 bit platforms
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 4 Oct 2011 01:40:08 +0000 (12:10 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 4 Oct 2011 01:40:08 +0000 (12:10 +1030)
Help the compiler eliminate untestable code.

ccan/opt/helpers.c

index dfeb4e2e790a553173830d039ae84b8026df2fa8..420a97a4fcac596fd31999ffbda42bb229a7f0f3 100644 (file)
@@ -258,7 +258,8 @@ static char * set_long_with_suffix(const char *arg, long *l, const long base)
                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;
 }
@@ -272,7 +273,8 @@ static char * set_ulong_with_suffix(const char *arg, unsigned long *ul, const lo
        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;
 }