[ https://issues.apache.org/jira/browse/PROTON-662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Fraser Adams resolved PROTON-662. --------------------------------- Resolution: Fixed Added the correct casting. Now compiles cleanly on both gcc and Clang. > 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)