<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/100557>100557</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang crashes on incorrect code with -std=c++20
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Strke
</td>
</tr>
</table>
<pre>
Reproducer: https://godbolt.org/z/Mc8xefEa9
```cpp
#include <iostream>
#include <variant>
#include <vector>
#include <tuple>
#include <optional>
struct X { std::variant< std::variant< int, std::string >, int > name; };
using var_array = std::vector<X>;
using var_tuple = std::tuple<int, int>;
void f( const var_array& );
void f( const var_tuple& );
void f( const X& );
int main() {
f( std::make_tuple<int, double>( 0, "test" ) );
}
void f( const var_array& ) { }
void f( const var_tuple& ) { }
void f( const X& ) { }
```
Command to compile:
```
clang++ -std=c++20 outputs/full_run/g++/79101.fuzz
```
and get bug report
```
outputs/full_run/g++/79101.fuzz:18:8: error: no matching function for call to 'make_tuple'
18 | f( std::make_tuple<int, double>( 0, "test" ) );
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
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: /home/clang/bin/clang-17 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -dumpdir /tmp/out1721368079.2865567- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name 79101.fuzz -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 -fcoverage-compilation-dir=/home/Fuzz4All -resource-dir /home/clang/lib/clang/17 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward -internal-isystem /home/clang/lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++23 -fdeprecated-macro -fdebug-compilation-dir=/home/Fuzz4All -ferror-limit 19 -fgnuc-version=4.2.1 -fno-implicit-modules -fcxx-exceptions -fexceptions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/79101-1ccafe.o -x c++ outputs/full_run/g++/79101.fuzz
1. outputs/full_run/g++/79101.fuzz:18:48: current parser token ')'
2. outputs/full_run/g++/79101.fuzz:17:12: parsing function body 'main'
3. outputs/full_run/g++/79101.fuzz:17:12: in compound statement ('{}')
#0 0x00005623391118b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/clang/bin/clang-17+0x2bbf8b8)
#1 0x000056233910f86e llvm::sys::RunSignalHandlers() (/home/clang/bin/clang-17+0x2bbd86e)
#2 0x0000562339111f48 SignalHandler(int) Signals.cpp:0:0
#3 0x00007f61b3e58520 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x000056233b5788d6 clang::OverloadCandidateSet::NoteCandidates(clang::Sema&, llvm::ArrayRef<clang::Expr*>, llvm::ArrayRef<clang::OverloadCandidate*>, llvm::StringRef, clang::SourceLocation) (/home/clang/bin/clang-17+0x50268d6)
#5 0x000056233b58e87f clang::OverloadCandidateSet::NoteCandidates(std::pair<clang::SourceLocation, clang::PartialDiagnostic>, clang::Sema&, clang::OverloadCandidateDisplayKind, llvm::ArrayRef<clang::Expr*>, llvm::StringRef, clang::SourceLocation, llvm::function_ref<bool (clang::OverloadCandidate&)>) (/home/clang/bin/clang-17+0x503c87f)
#6 0x000056233b5943df FinishOverloadedCallExpr(clang::Sema&, clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, clang::OverloadCandidateSet*, clang::OverloadCandidate**, clang::OverloadingResult, bool) SemaOverload.cpp:0:0
#7 0x000056233b593d3e clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/home/clang/bin/clang-17+0x5041d3e)
#8 0x000056233b2a7be8 clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/home/clang/bin/clang-17+0x4d55be8)
#9 0x000056233b2bf5da clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/home/clang/bin/clang-17+0x4d6d5da)
#10 0x000056233af65ef7 clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) (/home/clang/bin/clang-17+0x4a13ef7)
#11 0x000056233af67442 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/home/clang/bin/clang-17+0x4a15442)
#12 0x000056233af69812 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/home/clang/bin/clang-17+0x4a17812)
#13 0x000056233af631df clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/home/clang/bin/clang-17+0x4a111df)
#14 0x000056233af6edfa clang::Parser::ParseExpressionList(llvm::SmallVectorImpl<clang::Expr*>&, llvm::function_ref<void ()>, bool, bool) (/home/clang/bin/clang-17+0x4a1cdfa)
#15 0x000056233af65dde clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) (/home/clang/bin/clang-17+0x4a13dde)
#16 0x000056233af67442 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/home/clang/bin/clang-17+0x4a15442)
#17 0x000056233af631df clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/home/clang/bin/clang-17+0x4a111df)
#18 0x000056233af630e9 clang::Parser::ParseExpression(clang::Parser::TypeCastState) (/home/clang/bin/clang-17+0x4a110e9)
#19 0x000056233afc1741 clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext) (/home/clang/bin/clang-17+0x4a6f741)
#20 0x000056233afbfcb7 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (/home/clang/bin/clang-17+0x4a6dcb7)
#21 0x000056233afbf66f clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/home/clang/bin/clang-17+0x4a6d66f)
#22 0x000056233afc79f1 clang::Parser::ParseCompoundStatementBody(bool) (/home/clang/bin/clang-17+0x4a759f1)
#23 0x000056233afc8944 clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/home/clang/bin/clang-17+0x4a76944)
#24 0x000056233af1b01e clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/home/clang/bin/clang-17+0x49c901e)
#25 0x000056233af3386f clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/home/clang/bin/clang-17+0x49e186f)
#26 0x000056233af19c7c clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/home/clang/bin/clang-17+0x49c7c7c)
#27 0x000056233af196c1 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/home/clang/bin/clang-17+0x49c76c1)
#28 0x000056233af189c1 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/home/clang/bin/clang-17+0x49c69c1)
#29 0x000056233af16ef4 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/home/clang/bin/clang-17+0x49c4ef4)
#30 0x000056233af12f0e clang::ParseAST(clang::Sema&, bool, bool) (/home/clang/bin/clang-17+0x49c0f0e)
#31 0x0000562339977b17 clang::FrontendAction::Execute() (/home/clang/bin/clang-17+0x3425b17)
#32 0x00005623398eb024 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/clang/bin/clang-17+0x3399024)
#33 0x0000562339a2efdf clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/clang/bin/clang-17+0x34dcfdf)
#34 0x0000562337331342 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/clang/bin/clang-17+0xddf342)
#35 0x000056233732edf1 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#36 0x000056233732dd9e clang_main(int, char**, llvm::ToolContext const&) (/home/clang/bin/clang-17+0xddbd9e)
#37 0x000056233733c061 main (/home/clang/bin/clang-17+0xdea061)
#38 0x00007f61b3e3fd90 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#39 0x00007f61b3e3fe40 __libc_start_main (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#40 0x000056233732b515 _start (/home/clang/bin/clang-17+0xdd9515)
clang++: error: unable to execute command: Segmentation fault (core dumped)
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/clang/bin
clang++: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: /tmp/79101-cf9c5d.cpp
clang++: note: diagnostic msg: /tmp/79101-cf9c5d.sh
clang++: note: diagnostic msg:
********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkW09z4zay_zT0BUUVCf4_-CBLVuJ6zs7UyLubmwoEmjJ2SIIPBDWaObzP_gog9Qe0JEtOsrXJpmYUCWygu3_d6G4QPaRt-boGuHeiByea35FOvQp5v1TyK9zlgn2__wKNFKyjIJ1gil6ValonmDp44eDFWrBclGoi5NrBix8OXvxC0y0UjyRzvLnjTYfP2Ov_0KYZRnDAa1p2DJATzLholQRSOcHjqccbIjmp1bmnQJWQZx6qrinhzDPRKC5qUh4em89WyY4q9CtykgfUKqaVDaZ7GWYnx3itHHz0qFWS12ukl8bmqf6KalKBEzwgJ5k7wcMx067V5BsiV0RK8h05wfyIz6Dh7Fe93m7iYYpR0p4y6D0b5OI9ejbPjeAMFQ5OERV1qw7cHRwjB2d78lOEPYN3CH8dE_SfGo6K8NrBqYMzjXM_jhDqZ-_VqMhXWI10YaLLe5viFHl6xMFYQascjJFZ75hhMr9FZWPz_Zz39L5M_etJqv1W6H_ORFWRmiElEBVVw7Vi403T_6QlqdcOfnDwA3INQHPa_8QeQqJTTadaBy-KrixXsqv17uyfO3iRZL7nT4rux4-Ta2sJ1qBQ3q2RhEZIdZLseibB1E-dYKr_IpBSmNBRC1QRRV-12xZdTfXuQ4WQiJKy1Ag4ODkyOE72XuGnyElm6A_wD7OmWdyJHv_v_H899efnx-nyEbVdXnGFyBFeWvxRaOTqtcsnVFQOXpTlZvc_t5HiX0CVgxe8bTvQcCJtgF1kUq-AqCTtK8oJ_aokoaCVaKSOwxTaFhhqRSf7YT2TtK2gnChgSHY1aqnkjZr0Ii8VoV8R66pm71jeBH2WYi1JhYhcdxXUSouNHLx4FRU4eDH42iLXe7T_5foJcin1kask1-Fmm8arOHS7-mstvtVuyetu667rDrlQceWK_F_IrSSUZOtq87paBMal5qKqxsEL0Sk_wX4Qp16STXAaR1GcuMhlvCV5CW4hAZBLSyDSJa1ycyiEBFeDAjU70BlQNyB5wUGaYUokczek7MDVEbdFro42bsHLfgAdPLWXUVCindGtBIMSNZwit-HULWEDJcL9D966DQfkVoUkFbiN4LXSKXFutCsqol5dkLIWyC2KxqWi1qZTTjAXNXKLWrhSdDXj9drVtMitTJjQuUZIl5SctFrSoqu_8Zq5SuvWOsEcI1cRuQbl0qbTqLtxiFzV1WAG1lCD1AIzyLv1GqR-xOu1E8zXLEduQcUGJFmD28eXXlHGteQHgy-6Hz_CqVZEQu9b7mCrkUeUPD_6pX3CwFCT0uXt91ZBpSd1rdzTril18GLwlr2XOHiROXgxmbz9GPaBZrMPLdkfyufEpH8X6yM-er8R-vUbkew0y3dMcVj3osSCkvJK0o8pd4L0LTPY6i_0LdPzVrk8-3YW4ywaILdg0EigOpK6FaFSmKG8W1-5eQqT69yS6_TgZ8gt1nVHdXBquaidYB5O8MTvowGvmpJTrnTQ6Uqz9el268KWgqlL9YD1gzAmW75G7ny1-mk2W_08_cfjav7P6ZcFXs0WT6vp8hcnmPvIFYcYawKd61NKCpgI5G7RoO2tBYM_uWHGkP1Dk_5pJyXUCjVEtiCREl-h1pleZ-Fdisc3rp7oD6xX16ta9YQ-svSFhM5dw_rBh9fntanLdORGrSIKdLZEpnBNdN2azAdV-mrCwYGHvK3neV4U4yDIfN9P8xSZ_N8fDL63_ZfPktfKZOeXPsWnByJJvq12RyIc7wp4U7qk72VpBz94W5znRZqnlmC-LZhXpDGcEuxLVy_5uiblz6RmJch2V6Zfz5ulMVi88RiUIkyRxcXB6aBjP9xO9FkxmHrm736hYFgoKWI_DyBKI-wNkh0HrRMxqOQ5nbRiEhshQxxhzxIxPBYxj5I0ZTHq1TSwfNqALAVhM1IzzoiCJaj-yd-Egv2oRuto1hIqMpjwAPVUnzi-QOEEsyPSx20jHTwdjozvUb8R59TUpTmF6rl4dqzL0qT456HsucW4kYfjlMUWcpGNXAppUnwQuX1h3xAdZGcXZLYU-kyk4qScc7KuRas4HaA4bYlLss1525Tk-__wmv0Wo12L_PGcXQxbScMlF6JEtjedMLoxheZ-iw0DmiaFZcPYtmEWBqxAC17z9nXHFNiMlGWv8BkXPx6lojE-aQ_v8LJH_17rsrPcAHsW4mvXnKa6hN0vnSmYrzHStT51WoiTzvw-lSE5R2U8pe1Kc3zVZjdhECqyIzgdC5ORzQIWwBuPN98eOl6yd-34V7JYj-IBzev3RuizwE5eqYUzJkkO6QWcfwd0_3y4hSyKcrALjszGLS8iRk7jNqXqU_0nxu0WnGIWMbLHSddlVsVIijiCIhklt9a8fN99_yxaVfCtZg-tPlksu6LgWxu4qcklQ1w5qSyeISU7uDF7hMQPoEgsDfyRBkkY4osazEirDuLbgh8Tazrze5ePbf8cJ53jqS_fG8NmqUz4HU-9zWrEj8IQWzrjkc5Z6v_VdE5S39Y5GOkc-Ky4qPPU3C7pM9M1mo_Ev0lW32eFJWs4khVYQS7KepDwmbfKOo8tK1KW_zC3ME9VU56PHfHFis7cEPSnqSHSfDjcEp-ywg4j0TiMMAb_2WGEMbA0iP8Lw0jyJ9pS6VhWD7Irt9QfJKEHmSVhZktI_ST035VwuXuvc15I850tVaVmolawvellTEjiIgn9Y0HxKOfnBc0v5_y9kJ_kHGhJpClIpoUCOVVK8rzrT9Ang9boJK2q3ZElwN0hbl2v-8USaVyU9fOPhTzJbUxxE76M5lZFgv0xvnF8eVudxvc_BdDbwIhja9_iUalCk6y4vCtmwyvPPSgPgn13cHp7mkqirLA9f1RD0DQLw4vCLIYkOhbmaI622BnHs2zcnyVudK4kzsLQUmFUWvi551_OtDsV5lDwmquT8ZDX653jCXmNA71A1ZREwVNdiL7l4PKsZ6LgsNP6Guc218po5vlWysajoiMI0nf2mdbxJym65iwCywboW00O2JzeNO9Hmavi1CDqQsgvpF7DU81vRwn8dLQBR4WNn9GEvovSJ3nkNk_DrdaJFHV7aH1DcRH5KaXQtvqZuWG_0WMSmlALi2SMRUwvB6OjcGxBcnYn_e6IjD3lNyISUzsijsoqP83eQeRx2zuDnaj-DSjcpGecjfQcFWd-DMXlyP8immfYQNmHd-tFeEP-t4PPapSI98HFvOA5kYYPr5x-MbeuT1Uj5K70vC0vZDSEwsoLwaio83Hhvc0L0-XL2ffnHz4OZtQrPCsyj677siTJfavCXEgdR2vWH_B2RzqgnYbipgu_IMRR7lv11-jCL4Xcw5atZ32zm3yqW0VqChb_QSQLpZG4txlLA-Bh21hWHZIRDIV98BpkOQi62WeO9JIit-2TIGS0sI9Z9k1kEgR-oI_B1F8NPZOn76ReidxVAfv3mNYYnqGN4OxGARkrAvvIat_3JQEGVvhoB9fMfzHOe_ntyRthRy9O9BpDnj8qbTLEJN-AfHsdosWKR2Ixlg27bwfc0CCouR_uY95nej1UOcvsTZiMTEm92Detr9cvCsSLrTi6v48Y7sCDgmUfugPHGcs8a-VsvDKEHlqt9LRVq4hUqyPZb-QFocUr9EbmyiM_Qj2XGxDPIj_aLztQmpaO48bTriZ5CUgJBL2XItq33eqHS1jrQwXpu1FJVxr2VEgwXZPA3l3ejKNiCFC7tVFBeAkMsc5wbk1Xg166awG5GzMGgPhRXDnmg4amIeQnE28S64m39Zei2POyxEvzMIgTP_EpZXkR5lHmRTSPSeoFSRQU4B_ubF5Mm6HW6Fxv50D3KoEwZJolTQ-OaPm2f2SiYFkCm3N5vqX0FJq1UDoJILa_wkdVa2Ls4DG_4c9RA_jQwTt9eZnOfkYvPz-ixafn50__fPrbT2jx9Py4RC-fzPDD339CXx4_f_ryspfh86kO3LTVIeJsF-6eQAIybabAEFH7Ja8FYdzRRYuMRv218O-xTvv6IZv8rpYZ9ZrfsfuAZUFG7uDeT7CfeakXhXev91lQxEDSgOVhHHjUo3mCfRpEGeRpnuHijt9jD4degiPfD5MgnOReGJMUAr9gOfGI74QeVISXE71dJkKu70wj9r3veVGU3JUkh7I1_x4G4wER7ETzO3lv9lferVsn9EreqvawhOKqhPuZ2bqmextaJGrEayqk1NuRCgboG1evb7r37zpZ3n-8eXwQe3OP_z8AAP__uKiQYA">