The range of "enum" types varies from one ABI to another. If the enums being tested in these functions happen to be 16 bits wide, then GCC may issue a warning because, in such a case, the comparison is always true.
Using an int instead of a uint16_t avoids that particular problem and should suppress the warning. Fixes the following reported warnings: lib/ofp-print.c:240: warning: comparison is always true due to limited range of data type lib/ofp-util.c:1973: warning: comparison is always false due to limited range of data type Reported-by: YAMAMOTO Takashi <[email protected]> --- lib/ofp-print.c | 4 ++-- lib/ofp-util.c | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/ofp-print.c b/lib/ofp-print.c index 6560f32..30f6d37 100644 --- a/lib/ofp-print.c +++ b/lib/ofp-print.c @@ -227,7 +227,7 @@ nx_action_len(enum nx_action_subtype subtype) static void ofp_print_nx_action(struct ds *string, const struct nx_action_header *nah) { - uint16_t subtype = ntohs(nah->subtype); + int subtype = ntohs(nah->subtype); int required_len = nx_action_len(subtype); int len = ntohs(nah->len); @@ -312,7 +312,7 @@ ofp_print_nx_action(struct ds *string, const struct nx_action_header *nah) } } - ds_put_format(string, "***unknown Nicira action:%"PRIu16"***", subtype); + ds_put_format(string, "***unknown Nicira action:%d***", subtype); } static int diff --git a/lib/ofp-util.c b/lib/ofp-util.c index c49b079..bcaf3dd 100644 --- a/lib/ofp-util.c +++ b/lib/ofp-util.c @@ -1959,7 +1959,7 @@ check_nicira_action(const union ofp_action *a, unsigned int len, const struct flow *flow) { const struct nx_action_header *nah; - uint16_t subtype; + int subtype; int error; if (len < 16) { @@ -1971,7 +1971,7 @@ check_nicira_action(const union ofp_action *a, unsigned int len, subtype = ntohs(nah->subtype); if (subtype > TYPE_MAXIMUM(enum nx_action_subtype)) { - /* This is necessary because enum nx_action_subtype is probably an + /* This is necessary because enum nx_action_subtype may be an * 8-bit type, so the cast below throws away the top 8 bits. */ return ofp_mkerr(OFPET_BAD_ACTION, OFPBAC_BAD_VENDOR_TYPE); } @@ -2026,8 +2026,7 @@ check_nicira_action(const union ofp_action *a, unsigned int len, case NXAST_SNAT__OBSOLETE: default: VLOG_WARN_RL(&bad_ofmsg_rl, - "unknown Nicira vendor action subtype %"PRIu16, - ntohs(nah->subtype)); + "unknown Nicira vendor action subtype %d", subtype); return ofp_mkerr(OFPET_BAD_ACTION, OFPBAC_BAD_VENDOR_TYPE); } } -- 1.7.1 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
