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

    <tr>
        <th>Summary</th>
        <td>
            [clang] ICE Assertion `(EltVT.getSizeInBits() >= 64 || (uint64_t)((int64_t)Val >> EltVT.getSizeInBits()) + 1 < 2) && "getConstant with a uint64_t value that doesn't fit in the type!"' failed.
        </td>
    </tr>

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

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

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

<pre>
    test.c

```
struct A { unsigned a : 1; unsigned b : 1; };
struct B
{
    unsigned char c[0x7fffffff];
    unsigned char d[0x7fffffff];
    struct A e;
};

void *foo(struct B *p)
{
    if (p->e.a)
 return (void *) 0;
    p->e.b = 1;
    return p->c;
}
```
clang test.c -o test.s -S

error:
```
clang: llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1454: llvm::SDValue llvm::SelectionDAG::getConstant(uint64_t, const llvm::SDLoc&, llvm::EVT, bool, bool): Assertion `(EltVT.getSizeInBits() >= 64 || (uint64_t)((int64_t)Val >> EltVT.getSizeInBits()) + 1 < 2) && "getConstant with a uint64_t value that doesn't fit in the type!"' 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: clang case/test.c -o exe/test.s -S
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'case/test.c'.
4.      Running pass 'ARM Instruction Selection' on function '@foo'
 #0 0x0000564019be342e llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) llvm/llvm/lib/Support/Unix/Signals.inc:569:0
 #1 0x0000564019be34e5 PrintStackTraceSignalHandler(void*) llvm/llvm/lib/Support/Unix/Signals.inc:636:0
 #2 0x0000564019be1178 llvm::sys::RunSignalHandlers() llvm/llvm/lib/Support/Signals.cpp:103:0
 #3 0x0000564019be2c74 llvm::sys::CleanupOnSignal(unsigned long) llvm/llvm/lib/Support/Unix/Signals.inc:361:0
 #4 0x0000564019b12dde (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) llvm/llvm/lib/Support/CrashRecoveryContext.cpp:76:0
 #5 0x0000564019b132f9 CrashRecoverySignalHandler(int) llvm/llvm/lib/Support/CrashRecoveryContext.cpp:390:0
 #6 0x00007fb6a6c09980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #7 0x00007fb6a56b2e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #8 0x00007fb6a56b47f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #9 0x00007fb6a56a43fa __assert_fail_base /build/glibc-CVJwZb/glibc-2.27/assert/assert.c:89:0
#10 0x00007fb6a56a4472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
#11 0x000056401b3958b4 llvm::SelectionDAG::getConstant(unsigned long, llvm::SDLoc const&, llvm::EVT, bool, bool) llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1452:0
#12 0x000056401b344b22 llvm::SelectionDAGBuilder::visitGetElementPtr(llvm::User const&) llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:3884:0
#13 0x000056401b33249e llvm::SelectionDAGBuilder::visit(unsigned int, llvm::User const&) llvm/llvm/include/llvm/IR/Instruction.def:174:0
#14 0x000056401b332087 llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:1128:0
#15 0x000056401b4075d0 llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, true>, bool&) llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:672:0
#16 0x000056401b40c4af llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1591:0
#17 0x000056401b40617f llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:465:0
#18 0x000056401833420d (anonymous namespace)::ARMDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) llvm/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:67:0
#19 0x0000564018a573c6 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) llvm/llvm/lib/CodeGen/MachineFunctionPass.cpp:85:0
#20 0x00005640191dd42e llvm::FPPassManager::runOnFunction(llvm::Function&) llvm/llvm/lib/IR/LegacyPassManager.cpp:1430:0
#21 0x00005640191dd6d7 llvm::FPPassManager::runOnModule(llvm::Module&) llvm/llvm/lib/IR/LegacyPassManager.cpp:1476:0
#22 0x00005640191ddaff (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) llvm/llvm/lib/IR/LegacyPassManager.cpp:1545:0
#23 0x00005640191d8b75 llvm::legacy::PassManagerImpl::run(llvm::Module&) llvm/llvm/lib/IR/LegacyPassManager.cpp:535:0
#24 0x00005640191de389 llvm::legacy::PassManager::run(llvm::Module&) llvm/llvm/lib/IR/LegacyPassManager.cpp:1673:0
#25 0x000056401a0fadd2 (anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&) llvm/clang/lib/CodeGen/BackendUtil.cpp:1072:0
#26 0x000056401a0fafd6 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) llvm/clang/lib/CodeGen/BackendUtil.cpp:1097:0
#27 0x000056401a0fc03f clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) llvm/clang/lib/CodeGen/BackendUtil.cpp:1253:0
#28 0x000056401b55bade clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) llvm/clang/lib/CodeGen/CodeGenAction.cpp:381:0
#29 0x000056401d435aeb clang::ParseAST(clang::Sema&, bool, bool) llvm/clang/lib/Parse/ParseAST.cpp:205:0
#30 0x000056401abe7843 clang::ASTFrontendAction::ExecuteAction() llvm/clang/lib/Frontend/FrontendAction.cpp:1144:0
#31 0x000056401b557ff0 clang::CodeGenAction::ExecuteAction() llvm/clang/lib/CodeGen/CodeGenAction.cpp:1168:0
#32 0x000056401abe710c clang::FrontendAction::Execute() llvm/clang/lib/Frontend/FrontendAction.cpp:1041:0
#33 0x000056401ab18993 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) llvm/clang/lib/Frontend/CompilerInstance.cpp:1035:0
#34 0x000056401ad8a435 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) llvm/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:266:0
#35 0x000056401809fd38 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) llvm/clang/tools/driver/cc1_main.cpp:250:0
#36 0x0000564018092b35 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) llvm/clang/tools/driver/driver.cpp:317:0
#37 0x000056401a9d3073 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()::operator()() const llvm/clang/lib/Driver/Job.cpp:407:0
#38 0x000056401a9d3694 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) llvm/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:0
#39 0x00005640187e7e58 llvm::function_ref<void ()>::operator()() const llvm/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:0
#40 0x0000564019b134f9 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) llvm/llvm/lib/Support/CrashRecoveryContext.cpp:426:0
#41 0x000056401a9d328d clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const llvm/clang/lib/Driver/Job.cpp:407:0
#42 0x000056401a975817 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const llvm/clang/lib/Driver/Compilation.cpp:200:0
#43 0x000056401a975b98 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const llvm/clang/lib/Driver/Compilation.cpp:254:0
#44 0x000056401a986af7 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) llvm/clang/lib/Driver/Driver.cpp:1745:0
#45 0x0000564018094045 clang_main(int, char**) llvm/clang/tools/driver/driver.cpp:513:0
#46 0x00005640180bccda main clang/tools/driver/clang-driver.cpp:11:0
#47 0x00007fb6a5695c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#48 0x00005640180912aa _start 
clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 15.0.4 
Target: armv7a-unknown-linux-gnueabi
Thread model: posix
clang-15: note: diagnostic msg: 
********************

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

********************
```
BUILD_TYPE=Debug, while Release verion is normal.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltv2zq2_jXMCxFDInV9yIPiS5siPQlitwfnvBiURNmcypSGpNJkfv2AlGSLip24SffGHuwpCkfiZfFbF661SC0iJdtwSq-Afw382QVp1LYSV9NqxfgPKi7SKn--UlSqSQacGXCS7jdwuv_mVSrRZAomEITXsOGGZA4JBDiBLsCDtvTQBsIZwNcWge4NhN0DhPAwNdsSATPgXztPYdH-A_6BxMux-atj95jpvnmIqP19rFgOAUqKqgIo6lHqlhqg-AhaVkCAovoS4DmdkP0YKKhqBNd9PUmAYuhYiLpZWkQzI6JDVzfdjMgsvMfUkZWEb2CrNXhZtU8SXi6HrFEhKgHwcYUaClpTZfm4A2jR_2EpQItpldNPlAO0WNKSZopVfJZ8Gr1OsroGOHE939vTwQnAyXL2nZQNHbYMqZiWDVXTiktFuAIoahhXgbdWAE1hppstardVBlCg-w6t8-8r3ZBWVXn4G2sciZRU6LWg5hVF81J9X002VC3Zv-gNv2ZKAhRp3QA813oIPAjCKQin0EISm1HR4f07Kdspc3iSpiGLrqELAZ5C1L4GAAUQIDTgGf5kagsJ7JeDj0ZiaksUzCsqOUChggVTkHGothSq55oC5AKEAAphQVhJ80mryfvbebKcQ9mkO6YggWmzgYLWlVBQVXCrVC21zNACoMWGqW2TTrJqqPLycXdZi-ofNFMALZiUDZUALSDhOWQ8K5ucGgyZIHILU5L9UIJkVMu9FrQWVUalpDmUVSPaZj2TSFlljCiaQ9FwKDPBatVBXiqS_YB5s6v35ulMoPl3L6qNIDtIxKbZUa40dtiae0YkBWhxsHr6tH8_2L7bEQJ4SqtCa6smQlIBiYKU57AqYMFK2g5G3WBt8HBDORVEm07bibvOh4ZzxjewJlJCgMJFw40xw3vd8JVwsqFCq6XicFflTUn1KAstQGHHuneCaPLwFd7w1v9o2vst0xEu-kUBCoHnGHcVdu4DIOxA58lxHMcPPMeNU4o9NNyA8lm2D_eCcWXEv2p1GB0GCfJzXUklKNl1-43p3RkfdRHLptYmBtDiG2dPuoFtOCnlhPEM4MQP9GZ0DgDdFwCpD0doWhKfCc9LLVDjSDs_-g4IAQ5sCGgEwXXD6JiMHhpuIen9xesY-sU7r-hge3E8WhxloXds8WlJCW_quw6Cdkl9yCsrvnmnLHDg2nA8G46L8lxbbUR4xZ93VSMhJzsqa2MjcQdN7_8HmlWPVDxPK67ok7rZ1WXb2wrLjGndpjagX8R-bIVOoOFImf6IAYyKGFrzx9Z0ljG_ggDHjg0h6CCERRqQIHPiOHLgei2oVJWga6GgMZxujacoWAfeZcl483S54U3bUautoCSfyGriAHTtPLkojpxDVgEQDofL-EGKaBRCQZjUClukDStz7dlLlmaX0-9ffv5_un9FExQCtJCdKS0mE_32LHNaaw_ftKYin-WjQcMb_WpIT8wmHhlNNELihYULSVoZTs9DovJWGmaWWSQaLRLbixAPFwSu18SE9bWOfOuUnM97O2__0C458E3aNTnjJb0QnaG7TGstMFrDjheiQ76IsGv5uxTHfpR6v5IR2RtnOk6I2jTpzLTod-R4yBYZstnzvBShE-xday1R0XY8MsnUJ6rmJdXR_V4JKwR904H6wNoHkHer9ns3ijybAWwzgJEXn8pYXzIwVFDn6c7mocuoDg03D_rnEPonOS20zMMRYm-M2InCX0F8GDrMM_4AYbsuimzolrNOPSf0c-cE9JslLYet10Sy7Lqssh8WC6xkUq2Z0gmbPuRMx105VYR1lHiV03VV6xWkNXQgCK3DgpSSWg8mA8Fzq02JhnZtfzU87X7_mC61AjpFBuFo1wcjPWYeKc7UY1KWB1VKS5f7fPq32OIAv-vHrs1AOGIgcMO3GRANv-NfSbZlnPZYLQZe9P02DrzAtxmIhgxEGHvIyd_K25KHr7Pk06r6o5haEbGhOsQmD1_bX71Mv-TelmxGYosR4oc4C-DJ1fVJa4D7KOBfEv8R-h3QyJY4sk9Wbp7bJ6vFvZ7bHwI_DtFEg1u6IdnzgPA-DmPHRueO0QV5eAa6r-aYauu7a3ovsmGCrpGhMTJSFG9Z6tc_Da7vjdSMR3CjNPQHgiwNoe4MfSB3OP6Ihv9GfD4ewfNG8CiO4rfh_RHQ3CDENjYruhOnIHmO3tL0fMdUIiXdpeXzZ1rWPdaHhutNuqH8ntW0ZFxrvb-rBDi5JtkPyvNkHyOlytuehrN_NnRdKzv6CvJzXf8UTNF1f7UxmJTTgjSljs4lVfSNiebur0u531p2VVXlXaPqRi1YSc9dczTrsOBeT60oXvqzTi7fFNsHP2cUvVEw1lORB-_V07D9L6ehd0krtgMUCkfSyhxcwAGfWgIdnVZlthhmjGx4JRXL5JxvjB0bwxkM-UxJTsWSEpFt79ps0DrWDYZ20N8Y1QbiNwbdEr45NmSQBSnB-OaBFnZz7zaSEcH_UIUjf-TGrNQq9f2U5PQIn_qQ3uz6fdBeL60E4bI0V8ffOBtZQrJcdRdJ523l7qmV5_78aieyyEqfcg_7hKZDsPdESJosVzaUJd2RTt0nrghsUIZK_zdZrjo0yLGjk337TFIaRh6GtggWQstgbybtFnqiWaNobznRSRz95MGjJR7X9ezDsn3dnPp-WBTOkQ31LjSvq8p1A_v0a987a-m4TjbE8opoPiQUx7ONxr6DJqkbxTG2hbKrWUnFjbmGyuhxuZxG_op5D8COVzncmI-sysp5SB4RD_uWB26BHeg9Vhl5CfIFV9YXheMwV2ZXLE6u0G-EwE567VvpyImLHEcwy9z1jjA7CUuEIM_ax-Jp-9m7dcVJd5K32_qT_1HkqqpKCdAiF-yRCt3RrdeD9O0zAw5GIFGKfdizOnVb3gdQlztSlt9ppqou3z2C-JjmXwBrH3qX5toBF9sBN86xE1rW2ZFpdTp1p9VuR3g-3i5HJXxobCMfKa3GQ8Dr4skgHK3X2dOT67YvKZEs07GHaVBGDNZg3bBWgjAl--4ROVKW2oTMFVHfr4ckB19sdNwK10wBKCzJLs0JQGH3ldm0V3V32dR9eY72847b9qxXw5cq7a8XnJEOorEOgtgzpjfIA_ovkWthZNtVO7S45p0cSFmmJPuxLrjm8786PKbDueb06GexF1fEyWwF0GK5uu0vEEg5f1KCyMnWXBLZSrSvVkIaUj_6Nf29bVrvQzqKjJ4z_ojnFcNT7bGPcftj4pIU1Jw9zuXsI9_-PGTL2HPHGwVF-d_bWb3b6Xh2fhSHfuSGJ2VpQjF5kSj1ArYi_2iiHnDqVPTK0MTKmM_jdgBznzPbUdjDY67TOPpVrr9UqTzN8pcqvWVSnTrlvYjqe73XhGmVd1-2zpXS8Hrkg7Ly7WzeszPBOApIcdJCZoNnK387khqekvGfKKsTieheOrNhzuSGo2tLb5xweo7X5ch9ytkjM9s_OTOFtDI137VPyt4ogUyzLCdQLwdP56S649Ii69qnE29U5xD7WRTC9bpkqfZiRCjD0bnf_TPZ9AUP7aPpNHRMDQAenRi9aCRJFxEC24XhoGTy0tUagH1tZVeaVnTnBph1mm4r9NoyP_rE9CbMKXSxZ4oMJYWXj1BVUFIK2eDcEg_LOx-pkKzi0PUnzsTrQHQfW3ACidg9huSy4T949ZMfihMoSVk31tSWwF2Vm68-sK4ke3rJC6-UPurBfH9lBXfS1Ib20vnA_0E9aleomKxWyfQzXH2ew8Xd7e3d_978zye4uLmdL-HqzjRff_sEH-b3dw8r0JcH3h8rNIyktuWTxYb7AYJCE8hoDonakzxTBGihdnVXyHeZ4yIMvL5S-gMU5PYdevhd2rArga-_3dzO1qv_u58DPJvRtDH1Jj-3rKTwgZaUSKpNUVsik5BXYkfKyUV-hfMYx-SCXrmh4yDH90L_YntVRHEWFwHGjo8QdXMShhlyIxShKPDC0LlgV8hB2HXd0And0PcnHiq8OHYxzqjn4iAGnkN3hJUT7aQmldhcmJLUqxAFrn9RkpSW0hSzI9S5GwT82YW40uMv02YjgeeUTCp5oKCYKk0FfDvDn8Gb6fzvVCp80Yjy6v21wEb2_w4AAP__96KURg">