cmdline (merge-intel): fix compilation with icc
[libcmdline.git] / src / lib / cmdline_parse_num.c
index 8a394ac..6c1ec72 100644 (file)
@@ -97,7 +97,7 @@ enum num_parse_state_t {
        DEC_NEG_OK,
        DEC_POS_OK,
        FLOAT_POS_OK,
-       FLOAT_NEG_OK,
+       FLOAT_NEG_OK
 };
 
 /* Keep it sync with enum in .h */
@@ -110,7 +110,7 @@ static const char * num_help[] = {
 };
 
 static inline int
-add_to_res(unsigned int c, unsigned int *res, unsigned int base)
+add_to_res(unsigned int c, uint32_t *res, unsigned int base)
 {
        /* overflow */
        if ( (UINT32_MAX - c) / base < *res ) {
@@ -404,17 +404,17 @@ cmdline_parse_num(cmdline_parse_token_hdr_t *tk, const char *srcbuf, void *res)
        case DEC_NEG_OK:
                if ( nd.type == INT8 && res1 <= INT8_MAX + 1 ) {
                        if (res)
-                               *(int8_t *)res = - (int8_t) res1;
+                               *(int8_t *)res = (int8_t) (-res1);
                        return (buf-srcbuf);
                }
                else if ( nd.type == INT16 && res1 <= (uint16_t)INT16_MAX + 1 ) {
                        if (res)
-                               *(int16_t *)res = - (int16_t) res1;
+                               *(int16_t *)res = (int16_t) (-res1);
                        return (buf-srcbuf);
                }
                else if ( nd.type == INT32 && res1 <= (uint32_t)INT32_MAX + 1 ) {
                        if (res)
-                               *(int32_t *)res = - (int32_t) res1;
+                               *(int32_t *)res = (int32_t) (-res1);
                        return (buf-srcbuf);
                }
 #ifndef CMDLINE_NO_FLOAT
@@ -460,7 +460,6 @@ cmdline_parse_num(cmdline_parse_token_hdr_t *tk, const char *srcbuf, void *res)
                debug_printf("error\n");
                return -1;
        }
-       return -1;
 }