<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/111300>111300</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Clang] Assertion `Unqualified ? hasSameUnqualifiedType(X, Y) : hasSameType(X, Y)' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
yijan4845
</td>
</tr>
</table>
<pre>
Compiler Explorer: [https://godbolt.org/z/dbjjexs4f](https://godbolt.org/z/dbjjexs4f)
Attempting to compile the following program with Clang Assertion Trunk:
```c
void foo(const void *pcv, void *pvv, int i) {
1 ? *pcv : *pvv;
}
```
Stack dump:
```
clang: /root/llvm-project/clang/lib/AST/ASTContext.cpp:13930: clang::QualType clang::ASTContext::getCommonSugaredType(clang::QualType, clang::QualType, bool): Assertion `Unqualified ? hasSameUnqualifiedType(X, Y) : hasSameType(X, Y)' failed.
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 -mllvm --x86-asm-syntax=intel -fno-verbose-asm -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -O3 <source>
1. <source>:2:20: current parser token ';'
2. <source>:1:45: parsing function body 'foo'
3. <source>:1:45: in compound statement ('{}')
#0 0x0000000003b99d28 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3b99d28)
#1 0x0000000003b979ec llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3b979ec)
#2 0x0000000003ae61f8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x0000760eb2e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x0000760eb2e969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x0000760eb2e42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x0000760eb2e287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x0000760eb2e2871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#8 0x0000760eb2e39e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#9 0x0000000007825384 clang::ASTContext::getCommonSugaredType(clang::QualType, clang::QualType, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x7825384)
#10 0x0000000006c22108 clang::Sema::CheckConditionalOperands(clang::ActionResult<clang::Expr*, true>&, clang::ActionResult<clang::Expr*, true>&, clang::ActionResult<clang::Expr*, true>&, clang::ExprValueKind&, clang::ExprObjectKind&, clang::SourceLocation) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6c22108)
#11 0x0000000006c22b54 clang::Sema::ActOnConditionalOp(clang::SourceLocation, clang::SourceLocation, clang::Expr*, clang::Expr*, clang::Expr*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6c22b54)
#12 0x0000000006699a1f clang::Parser::ParseRHSOfBinaryExpression(clang::ActionResult<clang::Expr*, true>, clang::prec::Level) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6699a1f)
#13 0x000000000669c9c9 clang::Parser::ParseExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x669c9c9)
#14 0x000000000671f4a9 clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x671f4a9)
#15 0x000000000671587c 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+0x671587c)
#16 0x0000000006716790 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6716790)
#17 0x0000000006717665 clang::Parser::ParseCompoundStatementBody(bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6717665)
#18 0x0000000006718dba clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6718dba)
#19 0x000000000662bec3 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x662bec3)
#20 0x00000000066612cd 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+0x66612cd)
#21 0x000000000661fc0e clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x661fc0e)
#22 0x00000000066203ce clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x66203ce)
#23 0x0000000006627b63 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6627b63)
#24 0x0000000006628a4d clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6628a4d)
#25 0x0000000006628ef0 clang::Parser::ParseFirstTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x6628ef0)
#26 0x000000000661af32 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x661af32)
#27 0x00000000044f0998 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x44f0998)
#28 0x00000000047aa2e9 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x47aa2e9)
#29 0x0000000004728c2e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4728c2e)
#30 0x000000000488fb6e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x488fb6e)
#31 0x0000000000cd801f cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xcd801f)
#32 0x0000000000ccfd2a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#33 0x0000000004534669 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
#34 0x0000000003ae66a4 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3ae66a4)
#35 0x0000000004534c5f 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
#36 0x00000000044fa59d clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x44fa59d)
#37 0x00000000044fb68d 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+0x44fb68d)
#38 0x0000000004502fb5 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4502fb5)
#39 0x0000000000cd4eef clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xcd4eef)
#40 0x0000000000ba49a4 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xba49a4)
#41 0x0000760eb2e29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#42 0x0000760eb2e29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#43 0x0000000000ccf7de _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xccf7de)
clang: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWltz2ziy_jX0C0oqErw_-IGWo5nMySnnRD5Tu08qEAQlxCTAAUBH3l-_BYCyCVpS7BkmNVs7NXGJuDS-_rrRaFyQlHTHCLn24hsvvr1Cvdpzcf1EvyIWZVF8VfLq6XrF2442RIAPh67hgggvLIAX3-yV6qQXFh5ce3C941XJG7XkYufB9b88uK7Kr1_JQUa1F996MHt7c5h7_q3nF_ZvoRRpO0XZDigOsAUD1J6AmjcN_6YrOsF3ArXgG1V7sGoQ24FCSiIU5Qzci5496IGt0MS3_2P7_chpBWrOPZhhzqQCpsCDRYcfPbh6-Xw0n5QpQD2YAy-9sQIAACAAXrgeOgFDj-0QDm289HYy-ljDjUL4AVR9271GaT-xVsnKXQvOlQfXTfPYLjrBvxKsP20LuG5o6cF1sbm3f1ecKXJQS9xp2UGYh74Wc5TnhcX_9ai5f-rIuOylo_3eEbXibcvZpt8hQSrdXvP1Woqm6ExxyXmjTRsWI9t4if__7I8eNbSmpDIs7pHcoJaMiofh_qGl_NNwHxbHZtM6D6agRrQh1dJS9_nTh2LzAci-bKkCCJT9DgjScaG0O02ckqp9Xy4xbweCX_NMpeyJ9OAaIFYBynDTV9YbsUByD0qEH5RA2KjcCdIJjomUpAKS98IW655ISo4pUqQComdAYkE7tTzrD_7S8_PPg5cjsetbwpQcPIJ3xgOGabogx2k6eMUCHemWC2XmAlyXlB2rwWJXfUOiXkRgsQMLriWirtNye9X1ainBotUsgMXikCULJNuFfGIKHbzwljJFGrCoGV88ElFySXQ9WGzAYrHDeKE4b_AeUeaFtxeR6saSoU7uuQKLGvOGi0VF0Y5xqSiWdgzDsVt8FwIvXA3khh8sXYGmyykOC6j_We_vhSBMgQ4JSQRQ_IEw4MFUT1eYWgnwhITAC4so1hJ0Tx136p5h48c6UGoRJpAMIsKLIigzsYz3rAJSIUW0RYEHM90_vdERA6bPoRB4MPSBf_CP_4VlnlcwA8ZLzVyTT9L--CwoU8aH7q0jZi-NBPq25VIJgloPJkNAM1NKD_wXPcmDN_5hAOYgDybI05zgU8hXDUGs7-7Yhu4YajyY9cysUBVouJY_L04Nw8EJHZyIJEGdgZX2uS8E80ciniywXxGrGj1cNrDntHFjrm_-PQ8RDkOkiU9KSCIYQ39QyobuQ5Zsk2jRUNYfFjvW2wq8lHyZGOCmiwM7cmXmSV5j0Km9IKjaPtCmed8Apr8zQDwFHaUJ2EnDxXvBR2niyE5c2TBL6xCgUsfnd0k2HR3J6SvJQflumUHpyMxcmWFO8uR9Mk0XR2Y-9ro0g3GYRT9rNZ5vPg3AX5I3GAZOxEowhIGfjQFtSIuGmb8n-GHFWUX1KKi564hArJKuXoUJtl-I7BvlhatRzYdDJzxYaM2U6E2wteHtb9Jbt_kdNT35H8qq09V3pU4xTtdvzBLyiWOkQcxqt8Esjt2Cqd3KODpttwKrO-bYzbXYFPhFrV5RMrD69tKZeSlj15-d9SFJ8hwF9RjHZ5NQjH5_-XVzV99QhsSTxkikNIr-eZ921O4EwfbXJ_JI5p3Og3aO-uFEfZzj_KL653QeN9QBaYWkTlgUmVsFjdBRIXJUSIM6Qt9XYXNMz85rYX5XG9WqY6ieVRML1NEknmgSZym-qMmzFnfiluAGCTPriloRUSglaNkrvbEZJYubFjXN7wQrLlzP1HoOnhnC_mTA-w45F-PAdHrb_mOQJ0ebtpjXAJpfxwDJxABJmvt_wgB_F8bnZUuT4bCVTthKkyS-iH41bI6eWbvh1ZMHs9kTlwGMgzaboM2qEl1Eux42glO0oz7a5md82_ESzHWGNrv_ahUcHXM3msOS4PBNOt6SmjKqTkZ1ynZH3-biLT56T9quQYp8ZDUH5gDucq9PSJGX2f6JSjW791oqxlxBN5FNkgDi6qJemoRfBO-7sxRtOr35nKr6Qt7pifvGUHiW4u-nlpccdM3FF8R25COjP4B2w6pDu5uHJkGNffJd2u_EyFE_MkWEPUr46wvKqxYXTVlgTKTUdbSmmotZyTJcOGRNklPoh_j7ZA2LkMPZ2ck9O2VTX_uxlBlGHMomCS1My-RyCPxwsO7krt8_gaZ5idB6OkREEyIyFF2Ob_e8M3sOu6iNGbjr0B89-awmCcxzQPxC6pPpy8ue8n951TfkY9txcdwVzLwaWgUdBuIpA6S-nM2tqZDqP54GUjtpGkwmERfVIXxFg7ldyqagrSo2PfsB50sDGAetk1RGUe3nuXO-tOIV-YUwu8U-bqoJ7hUZisw59XwYBwgORieVjFKEIHF2nGuhF3pWnQA5Ozw7ugMvd-HBDEPiUmgH_MikQgyT0yye12dmnx0QjlVw70WiLKvLhLinQwbsiyaPz8lOdknTmePugMyB7iQ4Pq4yP6gBxsG2RdTdGRZCoCcTNFZ4j8QxVS6Op0JO2XBtPbcGFp-jAHQVwHUFETgSvgruTRQ4vcH92HbNSW1MHHnpomUMyfBog5CDStBHIl7fsmhYzsIexWGUJLm9yX-Re7y72wrD6nDPbyavuarzwgKjpikRftjWzA3jduzBb1bBirctYtV08p60nlRDO97ZI1MvXI34UYKy3bA4WNM-d9hu8eEQBPajRJLirTTNBxadxrpgqwSiSh6rJ-JQ0-h5YE8ahnrdpHgJ38Z9LOemiwfTBrVlhczV5JEqmB0v537j5Wl7RNOLtQRFI1Ocuj6zNV96tkE1aZ4cOi-bbtZbQovV8fl46lw4dk6B_-ucQ9O97JBQS_-iFyST5RrFeXWWOGM19GpNPLLphO5JR93g3FnChaaFk8KMdJstOdAKO640TWDKJHs3I7_xUp6n4zdefqJSOXRcCsfPHtAhqo1vLrjfzuDgJj-YR02Tw6ObZMU-rMv4HObb0W8nNTiRE5zj_yfyOGcGYolxmMsnGUhEyBDMjjnIEbkJIsUQAr6_PM-YdWhMY9CRk_H5JYpyFAENd75RrVBn1GDyniCv8nc-3TBdHJlwKpNEPthudbetVEio7UitN49CIneUcJqlpRUBVv6MdjJin8c9ejogQnDx_OgQ1MP-AODB5-1rPft0kxyo9qKKgCCMNLReErB4BIoDSQigo9R9GOb5caogqheM6FmnO4_fVz4_pryqrsMqD3N0Ra6DFGZ6358nV_vrqorCIPfLIK0DFMMog1EU1XFAIh-WdVBd0Wvowyjw_SRIwiRMljDKcZbXOaoyPyR55UU-aRFtlnpmLLnYXZmXgtdBEIS-f9WgkjTSvLOFcOAMevHtlbg2DwzLfie9yG-oVPJFhKKqMY9zzZNWL779SS8nr3rRXP_5p5GDzo_X8N8BAAD__68PqT0">