<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/106864>106864</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] Segmentation fault with `static_assert(__builtin_is_implicit_lifetime(int __attribute__((btf_type_tag("user"))) *))`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Zingam
</td>
</tr>
</table>
<pre>
The following libc++ lit test causes a segmentation fault:
```c++
#include <cassert>
template <typename T>
constexpr void test1() {
assert(true);
static_assert(__builtin_is_implicit_lifetime(int __attribute__((btf_type_tag("user"))) *));
}
constexpr bool test() {
test1<int>();
return true;
}
int main(int, char**) {
test();
static_assert(test());
return 0;
}
```
```
# .---command stderr------------
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
# | Stack dump:
# | 0. Program arguments: /usr/lib/llvm-20/bin/clang -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir /home/h/Projects/llvm-project/build/default.debug.libcxx.clang-20/test/std/utilities/meta/meta.unary/meta.unary.prop/Output/is_implicit.pass.cpp.dir/t.tmp.exe- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name is_implicit.pass.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/h/Projects/llvm-project/build/default.debug.libcxx.clang-20/test/std/utilities/meta/meta.unary/meta.unary.prop -fcoverage-compilation-dir=/home/h/Projects/llvm-project/build/default.debug.libcxx.clang-20/test/std/utilities/meta/meta.unary/meta.unary.prop -nostdinc++ -resource-dir /usr/lib/llvm-20/lib/clang/20 -I /home/h/Projects/llvm-project/build/default.debug.libcxx.clang-20/include/c++/v1 -I /home/h/Projects/llvm-project/build/default.debug.libcxx.clang-20/include/c++/v1 -I /home/h/Projects/llvm-project/libcxx/test/support -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D _LIBCPP_ENABLE_EXPERIMENTAL -D _LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG -internal-isystem /usr/lib/llvm-20/lib/clang/20/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/14/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Werror=thread-safety -Wuser-defined-warnings -std=c++26 -fdeprecated-macro -ferror-limit 19 -pthread -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/lit-tmp-azt46ovm/is_implicit-847fa8.o -x c++ /home/h/Projects/llvm-project/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit.pass.cpp
# | 1. /home/h/Projects/llvm-project/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit.pass.cpp:10:14: current parser token ')'
# | 2. /home/h/Projects/llvm-project/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit.pass.cpp:9:23: parsing function body 'test'
# | 3. /home/h/Projects/llvm-project/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit.pass.cpp:9:23: in compound statement ('{}')
# | 4. /home/h/Projects/llvm-project/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit.pass.cpp:4:16: instantiating function definition 'test1<int>'
# | #0 0x00007fd805f4babf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-20/bin/../lib/libLLVM.so.20.0+0xf62abf)
# | #1 0x00007fd805f497d9 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-20/bin/../lib/libLLVM.so.20.0+0xf607d9)
# | #2 0x00007fd805f4c210 (/usr/lib/llvm-20/bin/../lib/libLLVM.so.20.0+0xf63210)
# | #3 0x00007fd804a7f320 (/lib/x86_64-linux-gnu/libc.so.6+0x45320)
# | #4 0x00007fd80e3fea20 clang::ObjCObjectTypeLoc::initializeLocal(clang::ASTContext&, clang::SourceLocation) (/usr/lib/llvm-20/bin/../lib/libclang-cpp.so.20.0+0x1333a20)
# | #5 0x00007fd80de35242 clang::ASTContext::getTrivialTypeSourceInfo(clang::QualType, clang::SourceLocation) const (/usr/lib/llvm-20/bin/../lib/libclang-cpp.so.20.0+0xd6a242)
# | #6 0x00007fd80ef17ff5 clang::Sema::SubstType(clang::QualType, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName) (/usr/lib/llvm-20/bin/../lib/libclang-cpp.so.20.0+0x1e4cff5)
# | #7 0x000055c21f13384c
# | clang++-20: error: unable to execute command: Segmentation fault
# | clang++-20: error: clang frontend command failed due to signal (use -v to see invocation)
# | Ubuntu clang version 20.0.0 (++20240828081755+22e55ba3293f-1~exp1~20240828081902.377)
# | Target: x86_64-unknown-linux-gnu
# | Thread model: posix
# | InstalledDir: /usr/lib/llvm-20/bin
# | clang++-20: note: diagnostic msg:
# | ********************
# |
# | PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
# | Preprocessed source(s) and associated run script(s) are located at:
# | clang++-20: note: diagnostic msg: /tmp/lit-tmp-azt46ovm/is_implicit-3295e8.cpp
# | clang++-20: note: diagnostic msg: /tmp/lit-tmp-azt46ovm/is_implicit-3295e8.sh
# | clang++-20: note: diagnostic msg:
# |
# | ********************
# `-----------------------------
# error: command failed with exit status: 1
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWUtv47iT_zTKhaAgUX4ecnBiuztAOskmnsnuXgSKLMmclkiBD8eZw3z2BSk5tmNPd09vD_4JAtskS1W_erCqSFFjRCUBLqPhVTScX1Bn10pf_q-QFW0uCsVfL1drQKWqa_UiZIVqUbCIXEXkCtXCIgvGIkadAYMoMlA1IC21QklUUlfbKJtFyTxKdp-jpPvvefSzJBOS1Y4DirJrRo0BbaNscfikhaatqQ0U9rUFSRtAqzcipqSxsG012ijBA6w0IpOITFE07sUghFDPm0ysdhCRaZTtFo2HzfI3gjwvnKitkLkwuWjaWjBh81qUYEUDEZkIaVGeU2u1KJyFPA_yJoUtcw8wt7QKM8QZ0BEhXlr4RxGZ9YOd9Gg8P1R2r02hVB20OVWm0zG7FjLYKqzv1UEarNMSBT3_RozXoKFCdspE5BqxNdUB3eyMsBMR7012QHSo2zGg5AyaXVScDZW3GEExxpippqGSI2M5aI0P_vZ00fgaPdwuZk8LZFzRCIsoKlyFNLRKW2QVWlvbGh-bZBmRZSXs2hUxU01ElnW92X3hVqs_gNmILIUxDkxElsgL30WrXQNimpo1Kij7ajVl4K3Yami1YmAMcGSU0920f5Iao5igFjjSTiLDtGhtfAz9yVL2FXHXtPvd0y8lMUIPWlWaNojqyvnd5vVAEVk6oz1uUezQkyQiy8K7d8lqKiuEGUsRtlq0NaDtZJSPBtjJr1K9SFwL6ba4kg5haITFqvgDYY-BC-25r5UP-uU6IsuHzirm1Ep-x_CILDmEzR9zKFwV-5Sx3cYBQweqC5SlsZ7YWVELK4J1G7C0_4qdpPr1aBC3WrURWd4727rOK287M26pMTFr25gLbwcb26aNYQsYYS4MLWrApQZAmNVANabG4gJKpQF734Hke7qg1Qa0KAXoMM2o5nhDawfYJx6DsN83uBR1N4HOIUG40VArFtIhbhSHGrWCIdwKhmvYQI1INxAGtwIQbkpNG8CtEtKCjrI5rWuEy4baNQatpUK4LFvMlPSxZqNsriTCpVRYKye5kBX2tAg3IYNox6zSmNaC-vyMSydfhOTYei1NlM0JwpbqCixmrfMRgUcDhK2TECYqkKA94ODHCrRfErKKsnnFC4TLMO-3ZCvqTktv_Gz-keIF4ZKpDWhawYdHKpWxXMhdgcUauuyB-014fot34wAiIkuSIHzzy3dsn_G8nL5yk-Um_ZiSOp4HznBtyPt4jvLbm6vrh4f88-wpv7vPHx5nn77M8qf_eVotvuSfF7P54vGQbHE3u7pd5Iv_flg83nxZ3K1mt8dcHueLu5u7T_mX-_kiyubnF_L54uq3TwiHTS1pjYV5NRaaH_fo3izf5KIYrX-QNAioGIvIsi8EbwUgIst0EJFlHJ9-nKE9lQZb_4OdSt279j2fbz_9z0Ug_AxaK43wc0ihz8xSjhv6WgB2sg8I4J5sazVF-NmsKVcvCD87yaEM384Ax299J36WCveTfRPi8QPe1eGO4q0fNN24BWNEI_4MuVltej5SwZZBa7HvFHcPqkYwn6wruWenwYDeAPflw9WABQdp-7r0zKHVwHwzgZlqX09nMLfBBh65AY05lEKCx21B07qHaKmzqlaVYLQOKZJqj8kfDA6GveobqoUvH_uZlvqiZQMiJzVQtg5VlCl-bLUQn0HjzsJSHUy9GdrbswfWJ4A0Df6WRihpdhy7rqXVtGroztTUGFxSUQfHSoUbYRpq2Ro4lvCCOdSwc6QG7iSn0h44xUBd7oYheqJsbtcaKMeGlmC9gY_M-EK1L4cGYZ_vs3mPl4xCaXzzREOZ9pU78MS18A1pOkW47ZgjXFbSMd9weA2jbD6ISZx2dX3XVPT-90XcfBUtVlxjtgb2FQuJq6b0VW67xV1UdXYqjwaUc21EhfA8zz9dX-efZ78v8vnz7HFJ8uvlTT57-hJl8xRh5TeTbdqQJSy2TYvpn3YwUqEtPuhz8GQwLukkVghv0a5k_XSO_slW8Fzfddwyp_HHAJXN0sR_DHy7zpzWfo-3VBvQyKqvIFFExuHoND5WgHwYBaZRNiOZx-9xC1mh0kkWDvuF4q9egU7wOw2yD6iBkMjnNt82h3MshJwbTq9jf-4dz3t3HGky-DCa-DBKR50mxlJpBbVHHglJSoSfvV8OLwveeSgiWYKSbZIkybjkk2RYDgpalCgchrNZlM3Mq-l-PGghbTiirrrz7mRPpOlLrozVQJuIjPyZN9wrTDu7fvOEGtqLfkkUt7e_f4mNikkSJxG5SrbliNCiPPFHRLL0He7pmE_P4X508klUktafqeQ1aLO7Ufn_Q0vGfHoOGnkHjZE0-RXyMpIm5-Rlh_IGdFxmZCevY3emffNh6tmPAu_BMCNnWQ8OWUNWAiUJ6hrUYN374o_r-8KH_uq1hVvFuukQgbQWf_op35xODp6ZPa2ulbSwtX2wHKw9hXPPbX94_hk_dUcK1rZHxkuzLKPnVRweqsghG5IBQefhhnEFdqXFRtDaq9wBvpGlOlbyv1y3_l39won9F2nJR5QMyDklR0d-LNNxWQ6PcEFD-1-uMLZD_gP6fHG1FbewgXrV93Gzvi2-FcZ2yn3fy0eLc2A11WHljvqE-8tiAAasLIfnzDPuzTMcMpKWaZZNBuyYqD-U-WbHy81mqG8VZ8jJ0BhbhWALzFlA_TnBLz6dXo3_KN_u8q7UPvgk3zFFfafLXRBpQm7zFnIGEN6EOQAk5GYfZMcifyuctK5n33efyFsp7rNGaGYTMkgmZJJM0vFw6CcIDIcFzcg0K3H6F2zb9K8DomlC4mx8WjlX4Z7Jq_N3F4_v6LveONyahY5DGbE9Jrnxha-ugc-F_u4d6HeMLZUF_80FraQyVjDUmOrk_nV3N_5T_4eczl5Wz1ar2fVntPq8QMv729v755u7T2h5c7t4Qqv7MH312yf0uHi4f1ydQHs4d-k8MX7b_O3F8xuBBhQuKoEjak9Y_wNz_fDhISPTIUxO2_V_UZZZ_5oo-FdCYpTgb_3tKfdp4TgPvAi7RrAVNrSzLrwVSN-9SrnglxmfZlN6AZfpmAxTMhqMJhfry8mUTgbZeDoesnRaTIYcstFonCSQpQUAmV6Iy26PZ2k6HowHk5iz8WBYTgflOCXDyZRGgwQaKurYb7tY6eoivDK5TJPRZDS4qGkBtQlvGQnpDU-i4fxCX4Z9WrjKRIOkFsaaPQsrbB1eTXZPDOdn0mineDRK_iMv8EbJhdP15c-_T-rts7kk_xcAAP__sTxBKQ">