[ https://issues.apache.org/jira/browse/PROTON-2772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jiri Daněk updated PROTON-2772: ------------------------------- Description: There seem to be various mismatched printf format arguments. This is best resolved by annotating the string format parameters so that regular compilation warns on the mismatches as they happen. Proton already has some of this, but it is incomplete. {noformat} ``` /home/jdanek/repos/qpid/qpid-proton/c/src/core/logger.c: In function ‘pni_logger_log_raw’: /home/jdanek/repos/qpid/qpid-proton/c/src/core/logger.c:204:41: error: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘size_t’ {aka ‘long unsigned int’} [-Werror=format=] 204 | pn_fixed_string_addf(&out, "%04x/%04x: ", i, size); | ~~~^ ~~~~ | | | | | size_t {aka long unsigned int} | unsigned int | %04lx cc1: all warnings being treated as errors ``` {noformat} On windows, we want to enable these optional warning flags {noformat} "/analyzer" "/we6328" # Size mismatch: 'unsigned __int64' passed as _Param_(4) when 'int' is required in call to 'ssl_log'. "/we6340" # Mismatch on sign: 'unsigned __int64' passed as _Param_(4) when some signed type is required in call to 'ssl_log'. {noformat} was: There seem to be various mismatched printf format arguments. This is best resolved by annotating the string format parameters so that regular compilation warns on the mismatches as they happen. Proton already has some of this, but it is incomplete. {noformat} ``` /home/jdanek/repos/qpid/qpid-proton/c/src/core/logger.c: In function ‘pni_logger_log_raw’: /home/jdanek/repos/qpid/qpid-proton/c/src/core/logger.c:204:41: error: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘size_t’ {aka ‘long unsigned int’} [-Werror=format=] 204 | pn_fixed_string_addf(&out, "%04x/%04x: ", i, size); | ~~~^ ~~~~ | | | | | size_t {aka long unsigned int} | unsigned int | %04lx cc1: all warnings being treated as errors ``` {noformat} > [c] Add parameter safety annotations for printf format strings > -------------------------------------------------------------- > > Key: PROTON-2772 > URL: https://issues.apache.org/jira/browse/PROTON-2772 > Project: Qpid Proton > Issue Type: Improvement > Components: proton-c > Affects Versions: proton-c-0.39.0 > Reporter: Jiri Daněk > Assignee: Jiri Daněk > Priority: Major > Fix For: proton-c-0.40.0 > > > There seem to be various mismatched printf format arguments. This is best > resolved by annotating the string format parameters so that regular > compilation warns on the mismatches as they happen. > Proton already has some of this, but it is incomplete. > {noformat} > ``` > /home/jdanek/repos/qpid/qpid-proton/c/src/core/logger.c: In function > ‘pni_logger_log_raw’: > /home/jdanek/repos/qpid/qpid-proton/c/src/core/logger.c:204:41: error: format > ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type > ‘size_t’ {aka ‘long unsigned int’} [-Werror=format=] > 204 | pn_fixed_string_addf(&out, "%04x/%04x: ", i, size); > | ~~~^ ~~~~ > | | | > | | size_t {aka long > unsigned int} > | unsigned int > | %04lx > cc1: all warnings being treated as errors > ``` > {noformat} > On windows, we want to enable these optional warning flags > {noformat} > "/analyzer" > "/we6328" # Size mismatch: 'unsigned __int64' passed as _Param_(4) when 'int' > is required in call to 'ssl_log'. > "/we6340" # Mismatch on sign: 'unsigned __int64' passed as _Param_(4) when > some signed type is required in call to 'ssl_log'. > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org