Skip to content

type-map: Work around LLVM 22 "out of bounds index" error#247

Open
ryanofsky wants to merge 1 commit intobitcoin-core:masterfrom
ryanofsky:pr/lindex
Open

type-map: Work around LLVM 22 "out of bounds index" error#247
ryanofsky wants to merge 1 commit intobitcoin-core:masterfrom
ryanofsky:pr/lindex

Conversation

@ryanofsky
Copy link
Collaborator

This workaround is needed to fix "parameter pack may not be accessed at an out of bounds index" compile errors in
bitcoin/bitcoin#29409 due in sanitizer jobs due to bitcoin/bitcoin#34660 which updates sanitizers to use LLVM 22 instead of LLVM 21:

https://github.com/bitcoin/bitcoin/actions/runs/22501264518/job/65188721708?pr=29409 https://github.com/bitcoin/bitcoin/actions/runs/22501264518/job/65188721733?pr=29409

/cxx_build/include/c++/v1/__fwd/tuple.h:40:52: error: a parameter pack may not be accessed at an out of bounds index
   40 |   using type _LIBCPP_NODEBUG = __type_pack_element<_Ip, _Tp...>;
      |                                                    ^
/cxx_build/include/c++/v1/__utility/try_key_extraction.h:82:67: note: in instantiation of template class 'std::tuple_element<0, std::tuple<>>' requested here
   82 |                             is_same<__remove_const_ref_t<typename tuple_element<0, _Tuple1>::type>, _KeyT>::value,
      |                                                                   ^

The upstream LLVM bug is llvm/llvm-project#167709 and fix is llvm/llvm-project#183614

This workaround is needed to fix "parameter pack may not be accessed at an out
of bounds index" compile errors in
bitcoin/bitcoin#29409 due in sanitizer jobs due to
bitcoin/bitcoin#34660 which updates sanitizers to use
LLVM 22 instead of LLVM 21:

https://github.com/bitcoin/bitcoin/actions/runs/22501264518/job/65188721708?pr=29409
https://github.com/bitcoin/bitcoin/actions/runs/22501264518/job/65188721733?pr=29409

```c++
/cxx_build/include/c++/v1/__fwd/tuple.h:40:52: error: a parameter pack may not be accessed at an out of bounds index
   40 |   using type _LIBCPP_NODEBUG = __type_pack_element<_Ip, _Tp...>;
      |                                                    ^
/cxx_build/include/c++/v1/__utility/try_key_extraction.h:82:67: note: in instantiation of template class 'std::tuple_element<0, std::tuple<>>' requested here
   82 |                             is_same<__remove_const_ref_t<typename tuple_element<0, _Tuple1>::type>, _KeyT>::value,
      |                                                                   ^
```

The upstream LLVM bug is llvm/llvm-project#167709 and
fix is llvm/llvm-project#183614
@DrahtBot
Copy link

DrahtBot commented Mar 1, 2026

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK hebasto

If your review is incorrectly listed, please copy-paste <!--meta-tag:bot-skip--> into the comment that the bot should ignore.

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK f61af48, I have reviewed the code and it looks OK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants