<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/58727>58727</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang crashes with Assertion `RHS.U.VAL != 0 && "Divide by zero?"' failed.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          mikaelholmen
      </td>
    </tr>
</table>

<pre>
    llvm commit:
Reproduce with:```clang bbi-75382.c ```
Result:
```
clang-16: ../lib/Support/APInt.cpp:1576: llvm::APInt llvm::APInt::udiv(const llvm::APInt &) const: Assertion `RHS.U.VAL != 0 && "Divide by zero?"' 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: /repo/uabelho/main-github/llvm/build-all/bin/clang-16 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -main-file-name bbi-75382.c -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 -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/repo/uabelho/llvm-dev3/llvm -resource-dir /repo/uabelho/main-github/llvm/build-all/lib/clang/16.0.0 -internal-isystem /repo/uabelho/main-github/llvm/build-all/lib/clang/16.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdebug-compilation-dir=/repo/uabelho/llvm-dev3/llvm -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/bbi-75382-205345.o -x c bbi-75382.c
1.      bbi-75382.c:3:38: current parser token ';'
2.      bbi-75382.c:2:1: parsing function body 'foo'
3.      bbi-75382.c:2:1: in compound statement ('{}')
 #0 0x0000000002fc9873 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x2fc9873)
 #1 0x0000000002fc758e llvm::sys::RunSignalHandlers() (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x2fc758e)
 #2 0x0000000002fc9bf6 SignalHandler(int) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x2fc9bf6)
 #3 0x00007f95da7e1630 __restore_rt (/lib64/libpthread.so.0+0xf630)
 #4 0x00007f95d7f28387 raise (/lib64/libc.so.6+0x36387)
 #5 0x00007f95d7f29a78 abort (/lib64/libc.so.6+0x37a78)
 #6 0x00007f95d7f211a6 __assert_fail_base (/lib64/libc.so.6+0x2f1a6)
 #7 0x00007f95d7f21252 (/lib64/libc.so.6+0x2f252)
 #8 0x0000000002f0f414 llvm::APInt::udiv(llvm::APInt const&) const (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x2f0f414)
 #9 0x0000000002f119e6 llvm::APInt::sdiv(llvm::APInt const&) const (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x2f119e6)
#10 0x00000000057cf673 (anonymous namespace)::ComplexExprEvaluator::VisitBinaryOperator(clang::BinaryOperator const*) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x57cf673)
#11 0x00000000057cc0eb EvaluateComplex(clang::Expr const*, (anonymous namespace)::ComplexValue&, (anonymous namespace)::EvalInfo&) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x57cc0eb)
#12 0x00000000057961bd Evaluate(clang::APValue&, (anonymous namespace)::EvalInfo&, clang::Expr const*) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x57961bd)
#13 0x0000000005792fe8 EvaluateAsRValue((anonymous namespace)::EvalInfo&, clang::Expr const*, clang::APValue&) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x5792fe8)
#14 0x000000000579316f clang::Expr::EvaluateForOverflow(clang::ASTContext const&) const (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x579316f)
#15 0x0000000004b722cc clang::Sema::CheckForIntOverflow(clang::Expr*) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x4b722cc)
#16 0x0000000004b727be clang::Sema::CheckCompletedExpr(clang::Expr*, clang::SourceLocation, bool) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x4b727be)
#17 0x0000000004eccc43 clang::Sema::ActOnFinishFullExpr(clang::Expr*, clang::SourceLocation, bool, bool, bool) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x4eccc43)
#18 0x000000000511c486 clang::Sema::BuildReturnStmt(clang::SourceLocation, clang::Expr*, bool) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x511c486)
#19 0x000000000511b9e2 clang::Sema::ActOnReturnStmt(clang::SourceLocation, clang::Expr*, clang::Scope*) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x511b9e2)
#20 0x0000000004aa9e98 clang::Parser::ParseReturnStatement() (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x4aa9e98)
#21 0x0000000004aa29e9 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x4aa29e9)
#22 0x0000000004aa1b35 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x4aa1b35)
#23 0x0000000004aac491 clang::Parser::ParseCompoundStatementBody(bool) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x4aac491)
#24 0x0000000004aad935 clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x4aad935)
#25 0x00000000049d6794 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x49d6794)
#26 0x00000000049f3097 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x49f3097)
#27 0x00000000049d53ed clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x49d53ed)
#28 0x00000000049d4d00 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x49d4d00)
#29 0x00000000049d3e4f clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x49d3e4f)
#30 0x00000000049d1316 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x49d1316)
#31 0x00000000049d09ff clang::Parser::ParseFirstTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x49d09ff)
#32 0x00000000049cb808 clang::ParseAST(clang::Sema&, bool, bool) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x49cb808)
#33 0x0000000003aa55f6 clang::FrontendAction::Execute() (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x3aa55f6)
#34 0x0000000003a17764 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x3a17764)
#35 0x0000000003b66632 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x3b66632)
#36 0x00000000009d93b6 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x9d93b6)
#37 0x00000000009d6110 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x9d6110)
#38 0x00000000009d5d85 clang_main(int, char**) (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x9d5d85)
#39 0x00007f95d7f14555 __libc_start_main (/lib64/libc.so.6+0x22555)
#40 0x00000000009d233b _start (/repo/uabelho/main-github/llvm/build-all/bin/clang-16+0x9d233b)
clang-16: error: unable to execute command: Aborted (core dumped)
clang-16: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 16.0.0
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /repo/uabelho/llvm-dev3/llvm/../../main-github/llvm/build-all/bin
clang-16: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-16: note: diagnostic msg: /tmp/bbi-75382-973200.c
clang-16: note: diagnostic msg: /tmp/bbi-75382-973200.sh
clang-16: note: diagnostic msg: 

********************
```
This seems to be very old.
[bbi-75382.c.gz](https://github.com/llvm/llvm-project/files/9910107/bbi-75382.c.gz)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVWltz4joS_jXkRWXKN3x5yAOBMJOqnE0qcOY8UrIsg874trKdy_n12y0bYhlCMhNSuzuVwcaSWt_3qdWScEdF_HKZpo8ZYUWWiXrkTEfmfGROH3gpi7hhnDyJeouPPbP9YynNNySKhOFPnMAeM7Iv2jWtmvTV0qBUNTcsD8rJeDyyF6mI4HPZlGUha7ib3t_k9ZiVJdSwJr6qiAjRoDNVpcPv7W0Ti8eRHbAirw5qkJHtjeyQqEK0OK0qLmtR5Ij-4fty_Of4x_QWqlkjZ07Mtr4HF3suHkXMSfRC_uGyGDkLeDayfZJQkfJ43LK6v72eLq9J1UQgIqEkajZEcmRE6oJs67qsEI0NjRcbELSJxiA4skec7cUAxf_mDDUQVdXwCm4IzWMicpY2AKHecsIkrbYkouxnLSnjI3tGSoljxTgwiklVNLJ9jC1pVRVM0BoKZJOTiklR1h3kZQ1GSNxk5X6oTCgK72WxkTQjVG6ajOc1AgcdFkgHLg2NeLrFu4yK3GjJvBKJGpHGBk1TvBc5fO4GnBiMWcSoAULKyXPgrT3XaPKfefGUG6nIm2djkzfE4KCgUUR_EyOTPKXPaIwYuy_wWTCKA1cRIxYVjVJuJJJzMJ9yKg1a1UbEk0JyA1XioIKhkCYwXEZOM675rrLbWTSyIuYpKQU8hg8j5Y_w1W6_iAou0EuWgDjcKAuR11yCsyh4SUbrrcGlzAv4kpQGOBoOEPjaHHzMSPLCkEWTxwK0wLpgSPmibFhdAOpU0IoDpaTJn0QeGzUSA-nn0H0NQ8Frg5UNymZ4Ljxqcq4ebHjOJQLO1CwGeTmtjYrRtFVGPPMYcWEflfFEZQ4IQDkOHrrhEg3BA-hnE0fQOyseuaQbsF1kpUhbWWKBPI-5gHLbmD863T2B8Wk9EBv9nte08UB5DVwtb2yOTWIotXOawji8VDXPzmcbp1s3wY720lQSW4KPpB-sqjrZMAafnZtLHm9hWJSXw1N3HIwncFXxb_BxvMVht_wZb1i_-w9VajHuqybKE357uJPWtVKBYc8K4QHMYWaAE1VgCsy4Y3tsKcdKoV4s6CYvqlowdHUax1ANvHG-Xn-bzdbfpz-u1_O_pg8Lez1b3Kynyz_AArQuEHgNgQpGczd3DducOO5kDPPtmbD-nG5jmYWxrP_UmTr4P8BwxhopIbSRkkpYBiBEQ5yAPvyRc4WfyoB9aMDGJQnbYzucRzBbmVpEIlhH0UBSFHsDzgkDIscFt8SIQKoaAjRGWjAQYGv_auTP8cYOW0tQ4JjEfDZ3_-yEhYHv9FY5GOD25l7C6KvYvmoXiOC1kqRPa1AfQkSm1rcZ4KhxWVQdfzrCj-wr87mDpmG3Btj9ScCPYX9o8qXYgON-h8UrBR9SuM4ND3vX4NlDaaPEIxoQAPA1SkFPGhSng-In4SSmPrc8GPj1GqIqrBJ8LTsfwRjjue21rLcwoPG4KjCWgd0E2mhG3b5RP7EDJ_CJpKLih9YY2mnxOR7U0wxNBoZC6geERsUxWH1DPtTTDHkDQ5ZFPaBJ1aZsjTurdUTfgWcn0Eiz6g-t2hP7HRNQQzMR6K5gJq7lntxtDveZ7Qazt9k8r8coQBriUEdsWSH3jiOu_iuIFaA9YgwGWiSb-CzxIJJBnzQv8pesaCqCu7SqVNErbKHOIFim_Pn6uZTXjzRtKEyHtuSHqER9JXIqX-5K2LtgARwC1BKvKuhlO7rTM0_mjodG1BoQZSaPSAefd4x0rMivh3D2QVl-gEneRfR3WmD3N3lSdAN-XgWQoKaArSsQelYU7xXQqU_vf5fFjLyt4JkZKgIaQ2fA0E54sGc4rR46UsG5CGllfc3OzRSJaEzdAVPH8pIh0FcySH9RyDvYCSZp8TQY6-VqBucj2J1-bfTpUGo0Jn0abuTbNmN9Gkue0W5ybTn7CRwgSB6noRif3cs6TBpobwjaj_gJ0G1YgFN_i_AoZs2RlurMdtudg7EwKor0C4gBbo2YrxHjjDHXOU5syuq7HM4totoumjT9LLPh9bxMWyIaU21nMbEs5gbecaZXaPyB143Ml3VW6ywP-RyX4AtYdaA1VuGAVRRy-8T4fZZVvwkrSv4FMb7l0CdpaxsWl9KQh0Efyr06RfbudzS7c935TzEdCA2lNUBpQ42TKPf47uScQ0WpxJ8mNZfTupYiamr8DbK3YVxmgOgHZ2rzNesPhhpRNUSO3Yyc68N17KD7GBt1y8A7k3Y49m37PsijvQ1rnHsIUGFtCOzBEFgRHJl-fQj-VzQ_t14oh6aXM9CLuaF1Ev-s-81kr9tVEb8AyK-I4S0cDa87wBuH74zvovt9aIi31wbH_Q0P1zylDXdf4MVIQmOp75DC2PND90Ms5zyB9bnz4EEDkW92Ho4HtPc9dcVhDwOq4a64t0t8s9Ut1H2d9bfiKw4AnRiaWvrWLEwcM_RPMkMZvsmiKd8UaVlydkj2Vb7jE_j9oPihsNpBhX3vAxSA_OJLhFQ6aUL6A7ebODx-V8g72XO-m-5n70Nh318sTko_Zfh2DctEIvDXwHN7FXLVxAgGYrixab4rRrd8aJq8OSF_UZKDo-dXS4KMNUnCgSQOd5OTklw_t-6gr6yfluHcRJFHn6j-Sz9UsPD8d4roqihv8VVlu5T0Gd6V9N8Nv68HW4d9CHrgydGNw-u2_Y8iblJ-k-GrbLWKfcEa1FLUNLAGGphhcnqwF0JW9f-_EMhTE0LfUoYsCszDs8d0uRqcpxB2S-Yrj7ktHA2vtqVzKJ1MEs15FxIXrzyeqgA16g54nDU1P_8xqetfA-jqAC3f97TdzUy9CeXyBnYcNGdcg9ih1rQeMDq7V3QYNRLaFs2JPM9ztGN3B_eVy-N-0Q9OcT17fOuwaeC1HZMZwv4zAhdh1ho70F9QSElf1NScsS3t_QyKUxXmqfYMHjwWIj4_hxahRsEfUPAsyyQ70WfWSs2144c4iCDpUT7n9psWlQY7GMCexEF3ftlpr95ytsoqIc-vJfapgQr1t3aWO5lMyHqNb-rW4JayVthOv8ezoU3fqGsOmEI_EWnNnZcOGt733M9tU4kReNPkmImDaWC8dRCVakfzGAun-PIU9rkqb01ylY7V2woeNdgm4CVd2NlZ6_LRwILqq1Kvr9FuU3FiPKpnnBPRCwX9TkiXskG6pBhVslKJR9jnW-laXT31Bpqo9CmsXRaVeG6LVGhJAdhcKPDHlB-mlYz6-TAfGpYDsfKixshNXhNOSFZtFIDORz7x11ro5_1NV6vp7DtZfb8mi7vb27u_bv71jSxubq-XZHWnHl_9-Y08XN_fPawwIrRtj-XtBRXOuDdz9_YVwFdU2hqU0tdcyw9KcJhME_qObZq73JnPmqm2vzEi5xoXPd10tRUVOn5W4QyIOPr5CynSXeLmaHLVS9EZb_4ZTeYg8i9nbGJ2ISZshqFlWqbfV6U1u5ttF_zS8jzfMQPXtS_iSwdWl5Be1KJO-WU7FVWOJ69U5u35ElUvGple_n4m6iTwbf9ie8ms0Ip4aFKH2R53Yi_iQWg6JovCSRLT-CLFeV1dgrAg5YW4tE3bhoXIgj2-a1pjx-eRO2FOYodREpnOyDVhsyrSMXY8LuTmQqqEZCNqNhUUpqKqq9dCmBUQ2Tjf2adNvS3kZSZ-UowmacbzC4X5UgH-D6Hxm5Y">