[libcxx-commits] [libcxx] [libc++] Refactor __tree::__find_equal to not have an out parameter (PR #147345)

LLVM Continuous Integration via libcxx-commits libcxx-commits at lists.llvm.org
Tue Sep 2 23:42:56 PDT 2025


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `fuchsia-x86_64-linux` running on `fuchsia-debian-64-us-central1-b-1` while building `libcxx` at step 4 "annotate".

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

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

```
Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/fuchsia-linux.py ...' (failure)
...
[2436/2448] Building CXX object compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerUtil.cpp.obj
[2437/2448] Building CXX object compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerIO.cpp.obj
[2438/2448] Building CXX object compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerUtilFuchsia.cpp.obj
In file included from /var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp:21:
In file included from /usr/local/fuchsia/sdk/pkg/fdio/include/lib/fdio/fdio.h:10:
/usr/local/fuchsia/sdk/arch/arm64/sysroot/include/zircon/availability.h:31:2: warning: `__Fuchsia_API_level__` must be set to a non-zero value. For Clang, use `-ffuchsia-api-level`. [-W#warnings]
   31 | #warning `__Fuchsia_API_level__` must be set to a non-zero value. For Clang, use `-ffuchsia-api-level`.
      |  ^
1 warning generated.
[2439/2448] Building CXX object compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerMerge.cpp.obj
FAILED: compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerMerge.cpp.obj 
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/./bin/clang++ --target=aarch64-unknown-fuchsia --sysroot=/usr/local/fuchsia/sdk/arch/arm64/sysroot -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/../../include --target=aarch64-unknown-fuchsia -I/usr/local/fuchsia/sdk/pkg/sync/include -I/usr/local/fuchsia/sdk/pkg/fdio/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 -ffunction-sections -fdata-sections -ffile-prefix-map=/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins=../../../../llvm-project -ffile-prefix-map=/var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/= -no-canonical-prefixes -Wall -Wno-unused-parameter -O2 -g -DNDEBUG -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fno-sanitize=safe-stack -fvisibility=hidden -fno-lto -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -ftrivial-auto-var-init=pattern -nostdinc++ -D_LIBCPP_ABI_VERSION=Fuzzer -fno-omit-frame-pointer -isystem /var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1 -std=c++17 -MD -MT compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerMerge.cpp.obj -MF compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerMerge.cpp.obj.d -o compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerMerge.cpp.obj -c /var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerMerge.cpp
In file included from /var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerMerge.cpp:11:
In file included from /var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerCommand.h:15:
In file included from /var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerDefs.h:19:
In file included from /var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/set:537:
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1050:46: error: no matching member function for call to '__find_equal'
 1050 |               __node_base_pointer& __child = __find_equal(__parent, __key);
      |                                              ^~~~~~~~~~~~
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1041:75: note: while substituting into a lambda expression here
 1041 |           [this, &__max_node](const key_type& __key, __reference&& __val) {
      |                                                                           ^
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/set:746:13: note: in instantiation of function template specialization 'std::__tree<unsigned int, std::less<unsigned int>, std::allocator<unsigned int>>::__insert_range_unique<std::__wrap_iter<unsigned int *>, std::__wrap_iter<unsigned int *>>' requested here
  746 |     __tree_.__insert_range_unique(__first, __last);
      |             ^
/var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerMerge.cpp:153:17: note: in instantiation of function template specialization 'std::set<unsigned int>::insert<std::__wrap_iter<unsigned int *>>' requested here
  153 |     AllFeatures.insert(Cur.begin(), Cur.end());
      |                 ^
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1177:72: note: candidate function template not viable: requires single argument '__v', but 2 arguments were provided
 1177 |   _LIBCPP_HIDE_FROM_ABI pair<__end_node_pointer, __node_base_pointer&> __find_equal(const _Key& __v) const {
      |                                                                        ^            ~~~~~~~~~~~~~~~
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1174:72: note: candidate function template not viable: requires single argument '__v', but 2 arguments were provided
 1174 |   _LIBCPP_HIDE_FROM_ABI pair<__end_node_pointer, __node_base_pointer&> __find_equal(const _Key& __v);
      |                                                                        ^            ~~~~~~~~~~~~~~~
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1183:3: note: candidate function template not viable: requires 3 arguments, but 2 were provided
 1183 |   __find_equal(const_iterator __hint, __node_base_pointer& __dummy, const _Key& __v);
      |   ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1066:46: error: no matching member function for call to '__find_equal'
 1066 |               __node_base_pointer& __child = __find_equal(__parent, __nd->__get_value());
      |                                              ^~~~~~~~~~~~
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1057:52: note: while substituting into a lambda expression here
 1057 |           [this, &__max_node](__reference&& __val) {
      |                                                    ^
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/set:746:13: note: in instantiation of function template specialization 'std::__tree<unsigned int, std::less<unsigned int>, std::allocator<unsigned int>>::__insert_range_unique<std::__wrap_iter<unsigned int *>, std::__wrap_iter<unsigned int *>>' requested here
  746 |     __tree_.__insert_range_unique(__first, __last);
      |             ^
/var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerMerge.cpp:153:17: note: in instantiation of function template specialization 'std::set<unsigned int>::insert<std::__wrap_iter<unsigned int *>>' requested here
  153 |     AllFeatures.insert(Cur.begin(), Cur.end());
      |                 ^
Step 6 (build) failure: build (failure)
...
[2436/2448] Building CXX object compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerUtil.cpp.obj
[2437/2448] Building CXX object compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerIO.cpp.obj
[2438/2448] Building CXX object compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerUtilFuchsia.cpp.obj
In file included from /var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp:21:
In file included from /usr/local/fuchsia/sdk/pkg/fdio/include/lib/fdio/fdio.h:10:
/usr/local/fuchsia/sdk/arch/arm64/sysroot/include/zircon/availability.h:31:2: warning: `__Fuchsia_API_level__` must be set to a non-zero value. For Clang, use `-ffuchsia-api-level`. [-W#warnings]
   31 | #warning `__Fuchsia_API_level__` must be set to a non-zero value. For Clang, use `-ffuchsia-api-level`.
      |  ^
1 warning generated.
[2439/2448] Building CXX object compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerMerge.cpp.obj
FAILED: compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerMerge.cpp.obj 
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/./bin/clang++ --target=aarch64-unknown-fuchsia --sysroot=/usr/local/fuchsia/sdk/arch/arm64/sysroot -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/../../include --target=aarch64-unknown-fuchsia -I/usr/local/fuchsia/sdk/pkg/sync/include -I/usr/local/fuchsia/sdk/pkg/fdio/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 -ffunction-sections -fdata-sections -ffile-prefix-map=/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins=../../../../llvm-project -ffile-prefix-map=/var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/= -no-canonical-prefixes -Wall -Wno-unused-parameter -O2 -g -DNDEBUG -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fno-sanitize=safe-stack -fvisibility=hidden -fno-lto -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -ftrivial-auto-var-init=pattern -nostdinc++ -D_LIBCPP_ABI_VERSION=Fuzzer -fno-omit-frame-pointer -isystem /var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1 -std=c++17 -MD -MT compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerMerge.cpp.obj -MF compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerMerge.cpp.obj.d -o compiler-rt/lib/fuzzer/CMakeFiles/RTfuzzer.aarch64.dir/FuzzerMerge.cpp.obj -c /var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerMerge.cpp
In file included from /var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerMerge.cpp:11:
In file included from /var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerCommand.h:15:
In file included from /var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerDefs.h:19:
In file included from /var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/set:537:
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1050:46: error: no matching member function for call to '__find_equal'
 1050 |               __node_base_pointer& __child = __find_equal(__parent, __key);
      |                                              ^~~~~~~~~~~~
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1041:75: note: while substituting into a lambda expression here
 1041 |           [this, &__max_node](const key_type& __key, __reference&& __val) {
      |                                                                           ^
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/set:746:13: note: in instantiation of function template specialization 'std::__tree<unsigned int, std::less<unsigned int>, std::allocator<unsigned int>>::__insert_range_unique<std::__wrap_iter<unsigned int *>, std::__wrap_iter<unsigned int *>>' requested here
  746 |     __tree_.__insert_range_unique(__first, __last);
      |             ^
/var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerMerge.cpp:153:17: note: in instantiation of function template specialization 'std::set<unsigned int>::insert<std::__wrap_iter<unsigned int *>>' requested here
  153 |     AllFeatures.insert(Cur.begin(), Cur.end());
      |                 ^
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1177:72: note: candidate function template not viable: requires single argument '__v', but 2 arguments were provided
 1177 |   _LIBCPP_HIDE_FROM_ABI pair<__end_node_pointer, __node_base_pointer&> __find_equal(const _Key& __v) const {
      |                                                                        ^            ~~~~~~~~~~~~~~~
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1174:72: note: candidate function template not viable: requires single argument '__v', but 2 arguments were provided
 1174 |   _LIBCPP_HIDE_FROM_ABI pair<__end_node_pointer, __node_base_pointer&> __find_equal(const _Key& __v);
      |                                                                        ^            ~~~~~~~~~~~~~~~
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1183:3: note: candidate function template not viable: requires 3 arguments, but 2 were provided
 1183 |   __find_equal(const_iterator __hint, __node_base_pointer& __dummy, const _Key& __v);
      |   ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1066:46: error: no matching member function for call to '__find_equal'
 1066 |               __node_base_pointer& __child = __find_equal(__parent, __nd->__get_value());
      |                                              ^~~~~~~~~~~~
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/__tree:1057:52: note: while substituting into a lambda expression here
 1057 |           [this, &__max_node](__reference&& __val) {
      |                                                    ^
/var/lib/buildbot/fuchsia-x86_64-linux/build/llvm-build-7esf2gck/runtimes/runtimes-aarch64-unknown-fuchsia-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/include/c++/v1/set:746:13: note: in instantiation of function template specialization 'std::__tree<unsigned int, std::less<unsigned int>, std::allocator<unsigned int>>::__insert_range_unique<std::__wrap_iter<unsigned int *>, std::__wrap_iter<unsigned int *>>' requested here
  746 |     __tree_.__insert_range_unique(__first, __last);
      |             ^
/var/lib/buildbot/fuchsia-x86_64-linux/llvm-project/compiler-rt/lib/fuzzer/FuzzerMerge.cpp:153:17: note: in instantiation of function template specialization 'std::set<unsigned int>::insert<std::__wrap_iter<unsigned int *>>' requested here
  153 |     AllFeatures.insert(Cur.begin(), Cur.end());
      |                 ^

```

</details>

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


More information about the libcxx-commits mailing list