Skip to content

[Bug]: New gmock compile warning with latest ros2 rolling sync #28

@bijoua29

Description

@bijoua29

Describe the issue

When compiling a package in ros2 that uses gmock, get the following compiler warnings. This is new with the latest ros2 rolling sync as of 2024-04-30. Note: this warning only shows up because we had -Wsign-conversion enabled in our test project.

In file included from /opt/ros/rolling/src/gmock_vendor/include/gmock/gmock.h:58,
from /opt/ros/rolling/src/gmock_vendor/src/gmock_main.cc:32:
/opt/ros/rolling/src/gmock_vendor/include/gmock/gmock-function-mocker.h:73:49: warning: conversion to ‘long unsigned int’ from ‘int’ may change the sign of the result [-Wsign-conversion]
73 | constexpr bool StartsWith(const char (&prefix)[N], const char (&str)[M]) {
| ^
/opt/ros/rolling/src/gmock_vendor/include/gmock/gmock-function-mocker.h:73:71: warning: conversion to ‘long unsigned int’ from ‘int’ may change the sign of the result [-Wsign-conversion]
73 | constexpr bool StartsWith(const char (&prefix)[N], const char (&str)[M]) {
| ^
/opt/ros/rolling/src/gmock_vendor/include/gmock/gmock-function-mocker.h:78:47: warning: conversion to ‘long unsigned int’ from ‘int’ may change the sign of the result [-Wsign-conversion]
78 | constexpr bool EndsWith(const char (&suffix)[N], const char (&str)[M]) {

Steps to reproduce the problem

Build a ros2 package that uses gmock

What version of GoogleTest are you using?

Whatever version is included with the latest rolling version of ros2

What operating system and version are you using?

Ubuntu 24.04 (Noble)

What compiler and version are you using?

gcc -v

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.2.0-23ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-uJ7kn6/gcc-13-13.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-uJ7kn6/gcc-13-13.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.2.0 (Ubuntu 13.2.0-23ubuntu4)

What build system are you using?

cmake version 3.28.3

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions