ros2 / rclcpp

rclcpp (ROS Client Library for C++)
Apache License 2.0
514 stars 410 forks source link

Clang warning: ordered comparison of function pointers (Rolling) #2488

Open ahcorde opened 3 months ago

ahcorde commented 3 months ago

Related build https://ci.ros2.org/view/nightly/job/nightly_linux_clang_libcxx/1848/consoleText

In file included from /home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/test_utilities.cpp:28:
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/../mocking_utils/patch.hpp:141:3: warning: ordered comparison of function pointers ('void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1])' and 'void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1])') [-Wordered-compare-function-pointers]
  mmk_mock_define(mock_type, ReturnT, ArgT0, ArgT1, ArgT2);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:434:16: note: expanded from macro 'mmk_mock_define'
    MMK_EXPAND(MMK_MOCK_DEFINE_IMPL(Id,                     \
    ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:444:9: note: expanded from macro 'MMK_MOCK_DEFINE_IMPL'
        MMK_MOCK_DEFINE,                                    \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:604:81: note: expanded from macro 'MMK_COND_VOID'
# define MMK_COND_VOID(Macro, Params1, Params2, ...) MMK_EXPAND(MMK_VOID_SELECT(Macro, Params1, Params2, __VA_ARGS__))
                                                                ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 48 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
                       ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
                       ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
                       ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/../mocking_utils/patch.hpp:141:3: note: in instantiation of member function 'mocking_utils::PatchTraits<5, int (const rcl_arguments_s *, const rcutils_allocator_s *, void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1]))>::mmkuser_mock_type_stub' requested here
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:434:16: note: expanded from macro 'mmk_mock_define'
    MMK_EXPAND(MMK_MOCK_DEFINE_IMPL(Id,                     \
               ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:444:9: note: expanded from macro 'MMK_MOCK_DEFINE_IMPL'
        MMK_MOCK_DEFINE,                                    \
        ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/../mocking_utils/patch.hpp:462:43: note: in instantiation of member function 'mocking_utils::PatchTraits<5, int (const rcl_arguments_s *, const rcutils_allocator_s *, void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1]))>::mmkuser_mock_type_create' requested here
      PatchTraits<ID, ReturnT(ArgTs...)>::MMK_MANGLE(mock_type, create);
                                          ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:95:31: note: expanded from macro 'MMK_MANGLE'
# define MMK_MANGLE(Id, Name) MMK_MANGLE_(Id, Name)
                              ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:94:32: note: expanded from macro 'MMK_MANGLE_'
# define MMK_MANGLE_(Id, Name) mmkuser_ ## Id ## _ ## Name
                               ^
<scratch space>:211:1: note: expanded from here
mmkuser_mock_type_create
^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/../mocking_utils/patch.hpp:444:5: note: in instantiation of member function 'mocking_utils::Patch<5, int (const rcl_arguments_s *, const rcutils_allocator_s *, void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1]))>::replace_with' requested here
    replace_with(replacement);
    ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/test_utilities.cpp:177:32: note: in instantiation of member function 'mocking_utils::Patch<5, int (const rcl_arguments_s *, const rcutils_allocator_s *, void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1]))>::then_call' requested here
    auto mock = mocking_utils::patch_and_return(
                               ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/../mocking_utils/patch.hpp:537:3: note: expanded from macro 'patch_and_return'
  patch(scope, function, [&](auto && ...) {return return_code;})
  ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/../mocking_utils/patch.hpp:533:34: note: expanded from macro 'patch'
  prepare_patch(scope, function).then_call(replacement)
                                 ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/../mocking_utils/patch.hpp:141:3: warning: ordered comparison of function pointers ('void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1])' and 'void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1])') [-Wordered-compare-function-pointers]
  mmk_mock_define(mock_type, ReturnT, ArgT0, ArgT1, ArgT2);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:434:16: note: expanded from macro 'mmk_mock_define'
    MMK_EXPAND(MMK_MOCK_DEFINE_IMPL(Id,                     \
    ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:444:9: note: expanded from macro 'MMK_MOCK_DEFINE_IMPL'
        MMK_MOCK_DEFINE,                                    \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:604:81: note: expanded from macro 'MMK_COND_VOID'
# define MMK_COND_VOID(Macro, Params1, Params2, ...) MMK_EXPAND(MMK_VOID_SELECT(Macro, Params1, Params2, __VA_ARGS__))
                                                                ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 48 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
                       ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
                       ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
                       ^
In file included from /home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/test_utilities.cpp:28:
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/../mocking_utils/patch.hpp:141:3: warning: ordered comparison of function pointers ('void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1])' and 'void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1])') [-Wordered-compare-function-pointers]
  mmk_mock_define(mock_type, ReturnT, ArgT0, ArgT1, ArgT2);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:434:16: note: expanded from macro 'mmk_mock_define'
    MMK_EXPAND(MMK_MOCK_DEFINE_IMPL(Id,                     \
    ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:444:9: note: expanded from macro 'MMK_MOCK_DEFINE_IMPL'
        MMK_MOCK_DEFINE,                                    \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:604:81: note: expanded from macro 'MMK_COND_VOID'
# define MMK_COND_VOID(Macro, Params1, Params2, ...) MMK_EXPAND(MMK_VOID_SELECT(Macro, Params1, Params2, __VA_ARGS__))
                                                                ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 48 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
                       ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
                       ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
                       ^
In file included from /home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/test_utilities.cpp:28:
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/src/ros2/rclcpp/rclcpp/test/rclcpp/../mocking_utils/patch.hpp:141:3: warning: ordered comparison of function pointers ('void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1])' and 'void (*)(const rcutils_log_location_s *, int, const char *, long, const char *, __va_list_tag (*)[1])') [-Wordered-compare-function-pointers]
  mmk_mock_define(mock_type, ReturnT, ArgT0, ArgT1, ArgT2);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:434:16: note: expanded from macro 'mmk_mock_define'
    MMK_EXPAND(MMK_MOCK_DEFINE_IMPL(Id,                     \
    ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/mock.h:444:9: note: expanded from macro 'MMK_MOCK_DEFINE_IMPL'
        MMK_MOCK_DEFINE,                                    \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:604:81: note: expanded from macro 'MMK_COND_VOID'
# define MMK_COND_VOID(Macro, Params1, Params2, ...) MMK_EXPAND(MMK_VOID_SELECT(Macro, Params1, Params2, __VA_ARGS__))
                                                                ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 48 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
                       ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
                       ^
/home/jenkins-agent/workspace/nightly_linux_clang_libcxx/ws/install/mimick_vendor/opt/mimick_vendor/include/mimick/preprocess.h:40:24: note: expanded from macro 'MMK_EXPAND'
# define MMK_EXPAND(x) x
clalancette commented 2 months ago

This is definitely an issue, but one that has been there for quite a while. I'm going to mark it as backlog/help-wanted, in case someone has time to dig into this in the future.