<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/96627>96627</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang][trunk] UNREACHABLE executed: Type not integer, floating, or complex
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
wierton
</td>
</tr>
</table>
<pre>
Compiler explorer link for quick verification: https://gcc.godbolt.org/z/4hKvzeY3n
The testing program:
```
typedef int v4si __attribute__ ((vector_size (1*sizeof(int))));
typedef float v4sf __attribute__ ((vector_size (1*sizeof(float))));
__attribute__((noipa))
v4si f(v4si a, v4si b, v4sf fa, v4sf fb) {
const v4si c = fa < fb;
const v4si c1 = fa >= fb;
return (c & a) | abs(c1);
}
```
The stack dump:
```
Type not integer, floating, or complex
UNREACHABLE executed at /root/llvm-project/clang/lib/Sema/SemaChecking.cpp:8860!
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: /opt/compiler-explorer/clang-assertions-trunk/bin/clang -gdwarf-4 -g -o /app/output.s -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -O2 <source>
1. <source>:8:26: current parser token ')'
2. <source>:5:42: parsing function body 'f'
3. <source>:5:42: in compound statement ('{}')
#0 0x0000000003a1b328 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3a1b328)
#1 0x0000000003a1900c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3a1900c)
#2 0x000000000395eb28 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00007f2627a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007f2627a969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x00007f2627a42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x00007f2627a287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x000000000396a80a (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x396a80a)
#8 0x000000000659d85c (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x659d85c)
#9 0x00000000065e535a clang::Sema::CheckAbsoluteValueFunction(clang::CallExpr const*, clang::FunctionDecl const*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x65e535a)
#10 0x00000000065eeb9a clang::Sema::CheckFunctionCall(clang::FunctionDecl*, clang::CallExpr*, clang::FunctionProtoType const*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x65eeb9a)
#11 0x000000000698334a clang::Sema::BuildResolvedCallExpr(clang::Expr*, clang::NamedDecl*, clang::SourceLocation, llvm::ArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, clang::CallExpr::ADLCallKind) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x698334a)
#12 0x000000000698433d clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x698433d)
#13 0x000000000698743c clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x698743c)
#14 0x000000000641247d clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x641247d)
#15 0x0000000006409ad1 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6409ad1)
#16 0x000000000640ceaa clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x640ceaa)
#17 0x000000000640e1f1 clang::Parser::ParseRHSOfBinaryExpression(clang::ActionResult<clang::Expr*, true>, clang::prec::Level) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x640e1f1)
#18 0x0000000006411a19 clang::Parser::ParseExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6411a19)
#19 0x00000000064854b2 clang::Parser::ParseReturnStatement() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x64854b2)
#20 0x00000000064887d0 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x64887d0)
#21 0x0000000006489ef7 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6489ef7)
#22 0x000000000648ad05 clang::Parser::ParseCompoundStatementBody(bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x648ad05)
#23 0x000000000648c56a clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x648c56a)
#24 0x00000000063a1763 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x63a1763)
#25 0x00000000063d735c clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x63d735c)
#26 0x000000000639519e clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x639519e)
#27 0x00000000063959fe clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x63959fe)
#28 0x000000000639c107 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x639c107)
#29 0x000000000639d00f clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x639d00f)
#30 0x000000000639080a clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x639080a)
#31 0x0000000004307c98 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4307c98)
#32 0x000000000458ea89 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x458ea89)
#33 0x0000000004514c7e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4514c7e)
#34 0x000000000467701e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x467701e)
#35 0x0000000000c6946c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xc6946c)
#36 0x0000000000c627ca ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#37 0x000000000434bbe9 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#38 0x000000000395efd4 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x395efd4)
#39 0x000000000434c1df clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#40 0x0000000004311415 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4311415)
#41 0x0000000004311e7d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4311e7d)
#42 0x0000000004319b75 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4319b75)
#43 0x0000000000c66975 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xc66975)
#44 0x0000000000b3fd24 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xb3fd24)
#45 0x00007f2627a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#46 0x00007f2627a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#47 0x0000000000c6227e _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xc6227e)
clang: error: clang frontend command failed with exit code 134 (use -v to see invocation)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWt9z46YW_muUF8YeCf1-yIPiJO22aZOJcztznzwIIZsbGVRAWad__R1AToSieLOt0umd29nuyjac830fh8MBgaSkW0bIuRdfePHlGerUjovzr5QIxdlZyavn8xXft7QhApBD23BBBGgoewQ1F-D3juJH8EQErSlGinLmhQXYKdVKLyw8eO3B6y3Gyy2vSt6oJRdbD17_4cHraPfz0x_k3yHz_EvPL-zfDzsCFJGKsi1oBd8KtNdmbIvE7_-Yj-q5JRWpAWUKPEWSgs0GKSVo2Smy2QAPZh7MnghWXGwk_YPobwIPFvqZ1x7MKFMezF__hBeu4brhyJiuv9u06Tpp3P7t2LPmGKct6hubNoaTNmYekAdXlmbZP9WgRq-PpQdz4KW9FwAwZ7LXBQMvvAQ1Al640g3DyUbBa6sr8zRsKIjqBNM0MfBgotFobyuASqm_DByK6eXkgL2OsFQIP4Kq27fvDe7Dc0sA40qPLtkSoYkaUSnb6mcuAOb7tiEH2_5fv95fFasfi4ubK0AOBHeKVAAp4MFrwbny4HXTPO0XreD_IVh_xA3Slq4bWnrwek32qP9ntSP4kbLtErcaXZYlvgcD6-Xu5qpYXwHZlXuqAAJltwWCtFwooPg46KnadeUS833v_C0GKmVHpAevAWIVoAw3XUWA2hGABZI7UCL8qATCRDNuBWkFx0RKUgHJO2G_1j2RlBxTpCmLjgGJBW3V0kJev5XaX3p-fmcnF0Bi2-0JUxq4Vou3Rp1-wi-OE_6o2AJJSYSe5nKhRMcePXhdUnb8GSy21Vck6kUEFluw4Noialttt1Ntp5YSLNZgsdhivFCcN3iHKPPCy5OOdWPJUCt3XIFFjXnDxaKiaMu4VBRLsKgZXxjJ3K9voQ75XqvwyrIPNHvn67DIvLCAiVYAd0IQpkCLhCQCKP5IdNinZmKm1gKcsBB7YRFBbUH31Nmr7hjWOgGdQbWJ-sVAeNIAZSa0eccqPVEU0cNjc06qJ3h62eOxc9ODoQ_8g3_8L0RBGcIMmJALCy8s5LO0D3eCMmUC4sFGVfbaSKCvGy6VIGjvwURHlk2P1vFfDAsPXviHHpiDPBghz30fTyFfNQSxrr1la7plqPFg1jGzbFWg4dr-vDg1DAcndHDmMSlhBlY64u4J5k9EPFtgPyJWNdpdv7i4bVacKXJQfWbxzf8vLsLeRVrDBKYogjH0e1I2Rx2yZJNEi4ay7rDYss7-gJeSLxMD3HRxYEeuzTzJawxatRMEVZtH2jTf58D0dxzEY9BRmoCtNFp8L_goTRzbiWsbZmkdAlTqZPtdlk1Hx3LqjmaCMh_NGD_WoOMxG3pM4rzKYjyfx96g4zF3PZI4jBGwXcyMMiuenVt6wStKyZtOkd9Q05HrPnXplf21xwo1zdWhFbZq8GChk8Tg92OvS4KbQZsZZ2ZP44WnTiD-iCcp81M8jyA1GZfeEP5bckfy79O-E1xxU7Z8FndNzeHuZM8kz8Iweof7RUeb6p5I3jyR6pXLkP80u1_RnlTTkqzN6nXD-6ofrgaJuxACPd-T2gtXEy7Cq2-amgZWct68NzDW7-WN_uJnyqp51bfiOurDkfpRGFYn1J9WfY15S95qOz0YpxT_pVOobMgnC2__nVdYrZsjbDgSNo1CPC1sgdUt-x8Wdl4htU6OkJEjZBTAKHUi9M4UuYPnOy5VTQ8aH5GScrbu6poeXGULk-7uiewaNa0GXAElOlPYzkrRMnAoxi5FP0dVcJLiCkn1ys9lNmys25nPNpeMp0AyGtJhV70I6O5rXby_7TrzuFvOjijJSBRMEPpcUf4hSmiijhLpSAkS1KfD4_7H9W19QRkSz-8J8n3x72jTCoLt0w15IjNnUsvOoZ-NEkCAgvwk_Y8EwWhQ553gGqFDwa1joyyOSnh6BM1R1fq4cTbgZsVoIAwxQn-EMUsr_yTGF3S3QtdWSJhVoqgVEcXxXFA62_P1HjXNb-bE0Y25tdofa_EQdibkTuUm81zpTv1m9Bvr1niltP2HICe9jVvMOwBaX2cAgtEA5KRO_8QA_FMUn1ctLYajFhyphSo_Pr089MdRL6pd8OrZg9n81aAF46ANR2hxnJxezI4bsjHaQZ_pDc3bKLE15Ozxqyk4HN1CLURBmoQf4nhJasro2736nT2EPMY2Fx-J0QeybxukyBdW8-Mm9lSvG6TI62y_oZ-w6bVSOFq5FV9YpWGMT_LSIvwgeNe-K9G6Jfgt1VfxpifuB1PhuxK_bf-h5Nvbu-biHrEt-cLoJ8huVHVkd2vKMI-DnHxT9lsxCNQvTBFhD2__-oLypsXJoSwwJlLq32hNtRazimW0cMRKx2Ll9bfF6hchR7N3J_fsko1j7bMly2tXsmwkGQ7800v41cGGk7t-_w0yzSuE5ukIkY-EqHy_PinEA2_NbsIuakMFblv0e0fu1KiAeUmI5jhjonx5PWD5hVddQ77sWy6O9f7Mq6ElOFTAfZ2VhLmf-W9X_GL9MDrwMa9wk889rbJgHLRO7RmFforzzDmg5BX5gTC7azzuE80L6uJ4yD4rxh6Cg9Gp-KI4Iyhz9oHXQq9wrJoAOTs8692BF7rwgginxJXQOvzCpEIMk2kV3-czc8z2CB0KTgUXJWnqB8Q98jNgX5k8vazy2SmmMyecHpkD3SmofJzkUYIBxsFmj6i7JRqege7Q4EVQf9DhfAdX4InTam4GFp9DIBkRgClG4Cj4KngwWWB6Z_dl3zaTbBL3EFjb6KvAQWWcg0rQJyLevtDVsFI3MURlSXIjycDu8ZLARhhVza92xtlbAV5YYNQ0JcKPm5q5adz67uNmFaz4fo9YNZ68k6MnVd-Ot9o70hoM9FGCsm2_ONihfemw2eDDIQjshxJJijfSNO9VdBrrLzZKIKrk8eeROdQ0eh7YLXb_u25SjA4JreamiwfTBu3LCplbEEepYHa8B_ATL6fHIxu_w6-raDAUU2_q7S_3HVujmjTPjpynh27WCwkWqxPz-Si4cFA5VcL_XXBouZctEmrpn4qCyHeFC4IoiN8VzowaerMmHtV0Uveoo27w3ib6RNPCKWEG3OYqDgzhYShFwVgR4r4l-ogiP3F7D3C610-8vKFSOXKcSscvEdAiqgff3KX5uIJ9mHy2jsR9FRXBkY55mb4bWZeDZ6c0mKgJ3tP_b9Rx1vLUCOMoF44W8CQ_KnesQY7ITRIp-hTw7eV5xqpDY3JAOxWfX4Z1BSOg4c7n1Rp1vI4uXMG8yr_zlpjp4tgcX7TKSeSDzUZ320iFhNoMaH3YC4lcL-m4SoMpAdb-nOOkzb74PUY6IELoZaSwUQXqfn8AcB_zNaINqcBXqnaAHKiOooqAIIw0tE4SsHgCigNJCKCD0j0f3V0-q87DKg9zdEbOgzTIwyCHUXi2O8_CsIIRwWmESeT7eVxmGOVlGUOYpDnKzug59GHkJzAOYOSH2TKuSZiSrIY4zYM4L73IJ3tEm6WO-iUX2zNze_g8TxKYnjWoJI00V_gh7OWAXnx5Js7NneOy20ov8hsqlXy1oKhqzL1_2yO-9OILq2x8CaZuVGsFP34z-6wTzfmfvxRtmT2dw_8GAAD__xXv798">