Fraser Adams created PROTON-662: ----------------------------------- Summary: decoder.c pn_decoder_decode_value has a test that won't correctly execute. Key: PROTON-662 URL: https://issues.apache.org/jira/browse/PROTON-662 Project: Qpid Proton Issue Type: Bug Components: proton-c Reporter: Fraser Adams Priority: Minor
In decoder.c pn_decoder_decode_value there is a block of code: pn_type_t type = pn_code2type(acode); if (type < 0) return type; The test will not execute correctly because pn_type_t is an unsigned enumeration. The reason for the test seems to be to trap the case where pn_code2type does: return (pn_type_t) PN_ARG_ERR; rather than returning the type. Compiling with Clang rather than gcc flags this warning (which prevents using warnings as errors with Clang): warning: comparison of unsigned enum expression < 0 is always false [-Wtautological-compare] if (type < 0) return type; ~~~~ ^ ~ Trivial fix is to use correct casting: if ((int)type < 0) return (int)type; -- This message was sent by Atlassian JIRA (v6.3.4#6332)