int myIntSize()

in Code_Analysis/CodeAnalysis.cpp [40:63]


int myIntSize(const char *const str) {
    if (*str == '\0') {
        return -1;  // Empty str
    }

    errno = 0;

    char *end;
    const long value = strtol(str, &end, 10);

    if (*end != '\0') {
        return -1;  // Isn't a number
    } else if (errno == ERANGE) {
        return -1;  // Overflow
    } else if (value == ((long) ((int8_t) value))) {
        return 1;
    } else if (value == ((long) ((int16_t) value))) {
        return 2;
    } else if (value == ((long) ((int32_t) value))) {
        return 4;
    } else {
        return -1;  // More than 32 bit
    }
}