From 93595736d8ac9be2d00fe1c3a9d45ccc267a5628 Mon Sep 17 00:00:00 2001 From: William Woodall Date: Fri, 5 Nov 2021 15:09:39 -0700 Subject: [PATCH] suppress false positive from clang-tidy Signed-off-by: William Woodall --- rcl/src/rcl/logging.c | 11 ++++++++--- rcl/src/rcl/logging_rosout.c | 11 ++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/rcl/src/rcl/logging.c b/rcl/src/rcl/logging.c index 77f6a5e11..b6bac2777 100644 --- a/rcl/src/rcl/logging.c +++ b/rcl/src/rcl/logging.c @@ -165,8 +165,11 @@ static void rcl_logging_ext_lib_output_handler( const rcutils_log_location_t * location, - int severity, const char * name, rcutils_time_point_value_t timestamp, - const char * format, va_list * args) + int severity, + const char * name, + rcutils_time_point_value_t timestamp, + const char * format, + va_list * args) { rcl_ret_t status; char msg_buf[1024] = ""; @@ -188,7 +191,9 @@ rcl_logging_ext_lib_output_handler( }; va_list args_clone; - va_copy(args_clone, *args); + // The args are initialized, but clang-tidy cannot tell. + // It may be related to this bug: https://bugs.llvm.org/show_bug.cgi?id=41311 + va_copy(args_clone, *args); // NOLINT(clang-analyzer-valist.Uninitialized) status = rcutils_char_array_vsprintf(&msg_array, format, args_clone); va_end(args_clone); diff --git a/rcl/src/rcl/logging_rosout.c b/rcl/src/rcl/logging_rosout.c index 4133a52f6..c1905d38d 100644 --- a/rcl/src/rcl/logging_rosout.c +++ b/rcl/src/rcl/logging_rosout.c @@ -231,8 +231,11 @@ rcl_ret_t rcl_logging_rosout_fini_publisher_for_node( void rcl_logging_rosout_output_handler( const rcutils_log_location_t * location, - int severity, const char * name, rcutils_time_point_value_t timestamp, - const char * format, va_list * args) + int severity, + const char * name, + rcutils_time_point_value_t timestamp, + const char * format, + va_list * args) { rosout_map_entry_t entry; rcl_ret_t status = RCL_RET_OK; @@ -251,7 +254,9 @@ void rcl_logging_rosout_output_handler( }; va_list args_clone; - va_copy(args_clone, *args); + // The args are initialized, but clang-tidy cannot tell. + // It may be related to this bug: https://bugs.llvm.org/show_bug.cgi?id=41311 + va_copy(args_clone, *args); // NOLINT(clang-analyzer-valist.Uninitialized) RCL_RET_FROM_RCUTIL_RET(status, rcutils_char_array_vsprintf(&msg_array, format, args_clone)); va_end(args_clone); if (RCL_RET_OK != status) {