[libc-commits] [libc] [libc] Add `-Wno-sign-conversion` & re-attempt `-Wconversion` (PR #129811)

LLVM Continuous Integration via libc-commits libc-commits at lists.llvm.org
Mon Mar 10 11:54:07 PDT 2025


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `premerge-monolithic-linux` running on `premerge-linux-1` while building `libc` at step 6 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/153/builds/25248

<details>
<summary>Here is the relevant piece of the build log for the reference</summary>

```
Step 6 (build-unified-tree) failure: build (failure)
...
5.872 [1104/58/435] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.totalorderf16.dir/totalorderf16.cpp.o
5.873 [1103/58/436] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.setpayload.dir/setpayload.cpp.o
5.873 [1102/58/437] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.setpayloadsig.dir/setpayloadsig.cpp.o
5.874 [1101/58/438] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.setpayloadsigf.dir/setpayloadsigf.cpp.o
5.899 [1100/58/439] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.setpayloadsigl.dir/setpayloadsigl.cpp.o
5.899 [1099/58/440] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.setpayloadsigf16.dir/setpayloadsigf16.cpp.o
5.900 [1098/58/441] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.setpayloadsigf128.dir/setpayloadsigf128.cpp.o
5.901 [1097/58/442] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.f16add.dir/f16add.cpp.o
5.912 [1096/58/443] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.f16addf.dir/f16addf.cpp.o
5.984 [1095/58/444] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_us.dir/stdc_leading_ones_us.cpp.o
FAILED: libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_us.dir/stdc_leading_ones_us.cpp.o 
/build/buildbot/premerge-monolithic-linux/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_21_0_0_git -I/build/buildbot/premerge-monolithic-linux/llvm-project/libc -isystem /build/buildbot/premerge-monolithic-linux/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -fpie -ffixed-point -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -DLIBC_COPT_PUBLIC_PACKAGING -UNDEBUG -std=gnu++17 -MD -MT libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_us.dir/stdc_leading_ones_us.cpp.o -MF libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_us.dir/stdc_leading_ones_us.cpp.o.d -o libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_us.dir/stdc_leading_ones_us.cpp.o -c /build/buildbot/premerge-monolithic-linux/llvm-project/libc/src/stdbit/stdc_leading_ones_us.cpp
In file included from /build/buildbot/premerge-monolithic-linux/llvm-project/libc/src/stdbit/stdc_leading_ones_us.cpp:11:
/build/buildbot/premerge-monolithic-linux/llvm-project/libc/src/__support/CPP/bit.h:165:30: error: implicit conversion loses integer precision: 'int' to 'unsigned short' [-Werror,-Wimplicit-int-conversion]
  165 |   return cpp::countl_zero<T>(~value);
      |          ~~~                 ^~~~~~
/build/buildbot/premerge-monolithic-linux/llvm-project/libc/src/stdbit/stdc_leading_ones_us.cpp:18:37: note: in instantiation of function template specialization '__llvm_libc_21_0_0_git::cpp::countl_one<unsigned short>' requested here
   18 |   return static_cast<unsigned>(cpp::countl_one(value));
      |                                     ^
1 error generated.
5.984 [1095/57/445] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_ul.dir/stdc_leading_ones_ul.cpp.o
5.988 [1095/56/446] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_zeros_uc.dir/stdc_leading_zeros_uc.cpp.o
5.988 [1095/55/447] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_zeros_us.dir/stdc_leading_zeros_us.cpp.o
5.988 [1095/54/448] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_zeros_ui.dir/stdc_leading_zeros_ui.cpp.o
5.989 [1095/53/449] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_zeros_ul.dir/stdc_leading_zeros_ul.cpp.o
5.989 [1095/52/450] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_zeros_ull.dir/stdc_leading_zeros_ull.cpp.o
5.989 [1095/51/451] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_uc.dir/stdc_leading_ones_uc.cpp.o
FAILED: libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_uc.dir/stdc_leading_ones_uc.cpp.o 
/build/buildbot/premerge-monolithic-linux/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_21_0_0_git -I/build/buildbot/premerge-monolithic-linux/llvm-project/libc -isystem /build/buildbot/premerge-monolithic-linux/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -fpie -ffixed-point -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -DLIBC_COPT_PUBLIC_PACKAGING -UNDEBUG -std=gnu++17 -MD -MT libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_uc.dir/stdc_leading_ones_uc.cpp.o -MF libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_uc.dir/stdc_leading_ones_uc.cpp.o.d -o libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_uc.dir/stdc_leading_ones_uc.cpp.o -c /build/buildbot/premerge-monolithic-linux/llvm-project/libc/src/stdbit/stdc_leading_ones_uc.cpp
In file included from /build/buildbot/premerge-monolithic-linux/llvm-project/libc/src/stdbit/stdc_leading_ones_uc.cpp:11:
/build/buildbot/premerge-monolithic-linux/llvm-project/libc/src/__support/CPP/bit.h:165:30: error: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Werror,-Wimplicit-int-conversion]
  165 |   return cpp::countl_zero<T>(~value);
      |          ~~~                 ^~~~~~
/build/buildbot/premerge-monolithic-linux/llvm-project/libc/src/stdbit/stdc_leading_ones_uc.cpp:18:37: note: in instantiation of function template specialization '__llvm_libc_21_0_0_git::cpp::countl_one<unsigned char>' requested here
   18 |   return static_cast<unsigned>(cpp::countl_one(value));
      |                                     ^
1 error generated.
5.989 [1095/50/452] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_leading_ones_ui.dir/stdc_leading_ones_ui.cpp.o
5.990 [1095/49/453] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.explogxf.dir/explogxf.cpp.o
6.021 [1095/48/454] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_trailing_ones_ui.dir/stdc_trailing_ones_ui.cpp.o
6.066 [1095/47/455] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.atan2.dir/atan2.cpp.o
6.095 [1095/46/456] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.f16addl.dir/f16addl.cpp.o
6.097 [1095/45/457] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_trailing_zeros_ull.dir/stdc_trailing_zeros_ull.cpp.o
6.100 [1095/44/458] Building CXX object libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_trailing_ones_us.dir/stdc_trailing_ones_us.cpp.o
FAILED: libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_trailing_ones_us.dir/stdc_trailing_ones_us.cpp.o 
/build/buildbot/premerge-monolithic-linux/build/./bin/clang++ --target=x86_64-unknown-linux-gnu -DLIBC_NAMESPACE=__llvm_libc_21_0_0_git -I/build/buildbot/premerge-monolithic-linux/llvm-project/libc -isystem /build/buildbot/premerge-monolithic-linux/build/runtimes/runtimes-bins/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -fpie -ffixed-point -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -DLIBC_COPT_PUBLIC_PACKAGING -UNDEBUG -std=gnu++17 -MD -MT libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_trailing_ones_us.dir/stdc_trailing_ones_us.cpp.o -MF libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_trailing_ones_us.dir/stdc_trailing_ones_us.cpp.o.d -o libc/src/stdbit/CMakeFiles/libc.src.stdbit.stdc_trailing_ones_us.dir/stdc_trailing_ones_us.cpp.o -c /build/buildbot/premerge-monolithic-linux/llvm-project/libc/src/stdbit/stdc_trailing_ones_us.cpp
In file included from /build/buildbot/premerge-monolithic-linux/llvm-project/libc/src/stdbit/stdc_trailing_ones_us.cpp:11:
/build/buildbot/premerge-monolithic-linux/llvm-project/libc/src/__support/CPP/bit.h:178:30: error: implicit conversion loses integer precision: 'int' to 'unsigned short' [-Werror,-Wimplicit-int-conversion]
  178 |   return cpp::countr_zero<T>(~value);

```

</details>

https://github.com/llvm/llvm-project/pull/129811


More information about the libc-commits mailing list