[clang] [Clang][Hexagon] Use --cstdlib flag to choose Picolibc (PR #183257)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 2 04:12:50 PST 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
The build failed before running any tests. Click on a failure below to see the details.
<details>
<summary>[code=1] tools/clang/lib/Driver/CMakeFiles/obj.clangDriver.dir/ToolChains/Hexagon.cpp.obj</summary>
```
FAILED: [code=1] tools/clang/lib/Driver/CMakeFiles/obj.clangDriver.dir/ToolChains/Hexagon.cpp.obj
sccache C:\clang\clang-msvc\bin\clang-cl.exe /nologo -TP -DCLANG_BUILD_STATIC -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Driver -IC:\_work\llvm-project\llvm-project\clang\lib\Driver -IC:\_work\llvm-project\llvm-project\clang\include -Itools\clang\include -Iinclude -IC:\_work\llvm-project\llvm-project\llvm\include /DWIN32 /D_WINDOWS /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4 -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 -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /O2 /Ob2 -MD -UNDEBUG /EHs-c- /GR- -std:c++17 /showIncludes /Fotools\clang\lib\Driver\CMakeFiles\obj.clangDriver.dir\ToolChains\Hexagon.cpp.obj /Fdtools\clang\lib\Driver\CMakeFiles\obj.clangDriver.dir\ -c -- C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(574,32): warning: result of comparison against a string literal is unspecified (use an explicit string comparison function instead) [-Wstring-compare]
574 | if (HTC.GetCStdlibType(Args) == "picolibc")
| ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(574,32): error: comparison between pointer and integer ('CStdLibType' and 'const char *')
574 | if (HTC.GetCStdlibType(Args) == "picolibc")
| ~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(100,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
100 | constexpr bool operator==(const CustomizableOptional<T> &X,
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(140,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
140 | constexpr bool operator==(const CustomizableOptional<T> &X, std::nullopt_t) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(145,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
145 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(200,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
200 | constexpr bool operator==(const CustomizableOptional<T> &X, const T &Y) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(205,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
205 | constexpr bool operator==(const T &X, const CustomizableOptional<T> &Y) {
| ^
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(663,28): warning: result of comparison against a string literal is unspecified (use an explicit string comparison function instead) [-Wstring-compare]
663 | if (GetCStdlibType(Args) == "picolibc") {
| ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(663,28): error: comparison between pointer and integer ('CStdLibType' and 'const char *')
663 | if (GetCStdlibType(Args) == "picolibc") {
| ~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(100,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
100 | constexpr bool operator==(const CustomizableOptional<T> &X,
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(140,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
140 | constexpr bool operator==(const CustomizableOptional<T> &X, std::nullopt_t) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(145,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
145 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(200,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
200 | constexpr bool operator==(const CustomizableOptional<T> &X, const T &Y) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(205,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
205 | constexpr bool operator==(const T &X, const CustomizableOptional<T> &Y) {
| ^
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(739,60): warning: result of comparison against a string literal is unspecified (use an explicit string comparison function instead) [-Wstring-compare]
739 | if (UNW != ToolChain::UNW_None || GetCStdlibType(Args) == "picolibc")
| ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(739,60): error: comparison between pointer and integer ('CStdLibType' and 'const char *')
739 | if (UNW != ToolChain::UNW_None || GetCStdlibType(Args) == "picolibc")
| ~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(100,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
100 | constexpr bool operator==(const CustomizableOptional<T> &X,
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(140,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
140 | constexpr bool operator==(const CustomizableOptional<T> &X, std::nullopt_t) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(145,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
145 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(200,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
200 | constexpr bool operator==(const CustomizableOptional<T> &X, const T &Y) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(205,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
205 | constexpr bool operator==(const T &X, const CustomizableOptional<T> &Y) {
| ^
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(814,34): warning: result of comparison against a string literal is unspecified (use an explicit string comparison function instead) [-Wstring-compare]
814 | if (GetCStdlibType(DriverArgs) == "picolibc") {
| ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(814,34): error: comparison between pointer and integer ('CStdLibType' and 'const char *')
814 | if (GetCStdlibType(DriverArgs) == "picolibc") {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(100,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
100 | constexpr bool operator==(const CustomizableOptional<T> &X,
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(140,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
140 | constexpr bool operator==(const CustomizableOptional<T> &X, std::nullopt_t) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(145,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
145 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(200,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
200 | constexpr bool operator==(const CustomizableOptional<T> &X, const T &Y) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(205,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
205 | constexpr bool operator==(const T &X, const CustomizableOptional<T> &Y) {
| ^
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(890,34): warning: result of comparison against a string literal is unspecified (use an explicit string comparison function instead) [-Wstring-compare]
890 | if (GetCStdlibType(DriverArgs) == "picolibc" &&
| ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(890,34): error: comparison between pointer and integer ('CStdLibType' and 'const char *')
890 | if (GetCStdlibType(DriverArgs) == "picolibc" &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(100,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
100 | constexpr bool operator==(const CustomizableOptional<T> &X,
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(140,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
140 | constexpr bool operator==(const CustomizableOptional<T> &X, std::nullopt_t) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(145,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
145 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(200,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
200 | constexpr bool operator==(const CustomizableOptional<T> &X, const T &Y) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(205,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
205 | constexpr bool operator==(const T &X, const CustomizableOptional<T> &Y) {
| ^
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(914,54): warning: result of comparison against a string literal is unspecified (use an explicit string comparison function instead) [-Wstring-compare]
914 | if (getTriple().isMusl() || GetCStdlibType(Args) == "picolibc")
| ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\lib\Driver\ToolChains\Hexagon.cpp(914,54): error: comparison between pointer and integer ('CStdLibType' and 'const char *')
914 | if (getTriple().isMusl() || GetCStdlibType(Args) == "picolibc")
| ~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(100,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
100 | constexpr bool operator==(const CustomizableOptional<T> &X,
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(140,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
140 | constexpr bool operator==(const CustomizableOptional<T> &X, std::nullopt_t) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(145,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
145 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(200,16): note: candidate template ignored: could not match 'CustomizableOptional<T>' against 'CStdLibType'
200 | constexpr bool operator==(const CustomizableOptional<T> &X, const T &Y) {
| ^
C:\_work\llvm-project\llvm-project\clang\include\clang/Basic/CustomizableOptional.h(205,16): note: candidate template ignored: could not match 'const CustomizableOptional<T>' against 'const char[9]'
205 | constexpr bool operator==(const T &X, const CustomizableOptional<T> &Y) {
| ^
6 warnings and 6 errors generated.
```
</details>
If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.
https://github.com/llvm/llvm-project/pull/183257
More information about the cfe-commits
mailing list