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

    <tr>
        <th>Summary</th>
        <td>
            [clang] Assertion `Offset >= Size' failed
        </td>
    </tr>

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

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

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

<pre>
    code:
```c
struct S {
  short a;
  char b[~(__SIZE_TYPE__)0 / __CHAR_BIT__ - 1];
};
void foo(void) {
  struct S s = {0};
}
```
just crash on assertions trunk
https://godbolt.org/z/f4fMjK7W5
I didn't find any similar open issues.
generated via fuzzing

<details><summary><strong>Backtrace</strong></summary>
<p>

```
clang: /root/llvm-project/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp:1011: void {anonymous}::CGRecordLowering::insertPadding(): Assertion `Offset >= Size' 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 -x c -std=c2x -c <source>
1.      <eof> parser at end of file
2.      <source>:5:6: LLVM IR generation of declaration 'foo'
3.      <source>:5:6: Generating code for declaration 'foo'
 #0 0x0000000003c8d758 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3c8d758)
 #1 0x0000000003c8b464 llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3c8b464)
 #2 0x0000000003bd89a8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x0000713555042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007135550969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x0000713555042476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x00007135550287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x000071355502871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #8 0x0000713555039e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #9 0x0000000003fe38d9 (anonymous namespace)::CGRecordLowering::lower(bool) CGRecordLayoutBuilder.cpp:0:0
#10 0x0000000003fe4de8 clang::CodeGen::CodeGenTypes::ComputeRecordLayout(clang::RecordDecl const*, llvm::StructType*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3fe4de8)
#11 0x000000000413817d clang::CodeGen::CodeGenTypes::ConvertRecordDeclType(clang::RecordDecl const*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x413817d)
#12 0x0000000004139ffb clang::CodeGen::CodeGenTypes::ConvertType(clang::QualType) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4139ffb)
#13 0x000000000413ba75 clang::CodeGen::CodeGenTypes::ConvertTypeForMem(clang::QualType) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x413ba75)
#14 0x000000000444eefd clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(clang::VarDecl const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x444eefd)
#15 0x0000000004454b7b clang::CodeGen::CodeGenFunction::EmitVarDecl(clang::VarDecl const&) (.part.0) CGDecl.cpp:0:0
#16 0x0000000004454dd6 clang::CodeGen::CodeGenFunction::EmitDecl(clang::Decl const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4454dd6)
#17 0x0000000003feae17 clang::CodeGen::CodeGenFunction::EmitDeclStmt(clang::DeclStmt const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3feae17)
#18 0x0000000004001b65 clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4001b65)
#19 0x0000000003ff9765 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3ff9765)
#20 0x000000000400156c clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x400156c)
#21 0x000000000406ab5c clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::Stmt const*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x406ab5c)
#22 0x000000000407ddae clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x407ddae)
#23 0x00000000040e6ffa clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x40e6ffa)
#24 0x00000000040e2285 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x40e2285)
#25 0x00000000040e266b clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x40e266b)
#26 0x00000000040ec993 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (.part.0) CodeGenModule.cpp:0:0
#27 0x0000000004621756 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) ModuleBuilder.cpp:0:0
#28 0x00000000046122c8 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x46122c8)
#29 0x000000000662e4b4 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x662e4b4)
#30 0x000000000461f2b8 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x461f2b8)
#31 0x00000000048dbab9 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x48dbab9)
#32 0x000000000485e18e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x485e18e)
#33 0x00000000049c906e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x49c906e)
#34 0x0000000000ceda5f cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xceda5f)
#35 0x0000000000ce54fa ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#36 0x0000000004664e49 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
#37 0x0000000003bd8e54 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3bd8e54)
#38 0x000000000466543f 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
#39 0x000000000462902d clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x462902d)
#40 0x000000000462a0ae 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+0x462a0ae)
#41 0x0000000004631bd5 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4631bd5)
#42 0x0000000000cea8a3 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xcea8a3)
#43 0x0000000000bb6b84 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xbb6b84)
#44 0x0000713555029d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#45 0x0000713555029e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#46 0x0000000000ce4fa5 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xce4fa5)
clang: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134

```

</p>
</details>
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWs2O27iyfhr2hlBDov4XvVC725nMTTC5cZDBvRuDIimbE4kUSKrjzuI8-wFF2bJk91-OMxjgBGnAosji91UVq0oksdZ8Ixi7AfEtiO-ucGe2Ut1833GWXpWSPt4QSRkIC-AXIPHdfwL8QhvVEQNXEKS3wC8g1FupDMQgdI9kixUsQXz7L4Cy9Xr1_v_v11_-79P9eg1Q7kOAlnC9XvxWfF7fvv-yXkMPBiC-c6NBOvx4kJzCSkqAMvsToHycbj-_hiC8s83-YZj9cQQX-MVfnTaQKKy3UAqItWbKcCk0NKoT34BfbI1ptaWJlgAtN5KWsjbXUm0AWv4AaFlF1ce__if9MwZ-8R5STgVAqYEVFxRi8Qg1b3iNFZQtE5Br3TF9DfxiwwRT2DAKHziGVffjBxcbi80vQLigzGBeaxDeg3Chu6bB6nF4MEqKDQjvbzH5ZhQmDIQLgJaH9uFxHNMLbIdfU_KkxnZMYZWupDQALev6ofFaJf9ixD66HmhZ8xKg5UJS9o4J--vdZ0akoh_wo-zMbcdrytQ1aVsQFoEfBFZobyOQ3mIhxWMjO92boQBhcRgtvzPFewggLLiwyv-EKbVNKAMot2KKvU0gSPw_qkozA3ued3DFfzCAUlhhXjNq1frpw32xuoe6KxtuIIZlt4GKtdYBjYQzW3Kz7cprIpuB9yl9Zy_rklhQyAWpO8qg2bLBZcqDEdACtoq1ShKmNaNQy065ZjsSay0J782tOgE1Ubw1Fu_KYPIN0q5p3Uryr4Gff1Jyo3ADsdp0DRNGDyaSbW8S2bS8Zspju7aWiqm9mbzRez3nvWhZcrF_Db0N_Y5V5UXQ20BPWom4ba3czrSdudbQayx_6Hm7LPGwbjz9KAzegfCOC8Nq6FVCeg9MlVIz-x56K-h5G0I8I2VNtpgLEN49i9R21gK3eisN9Coia6k8yvFGSG040W6OXrvT5h0k0NOGgvCOoB30CLSrwWm59-3Aqg6ECyYrEN7DFivNFMQGMkGhrGDFawb8Ag3dxqFhEYOwSKySP3z4-hG-_wyH1WmdTlaQMlLj4RGgtA87KfCL8DlR7wYRYgNtoISVVE8KggCFPvR3_v5fSDKaxhnsvbJfHPpRux-fFBemd5svzvGysZPC39dSG8VwA1BinY8L08dGu5r-Q_8B6NbfDcDs0nSwgxnsMkqic7AXNcOia_8QK74RuAYo60SfYCisbeC6MEgLYwSJJiBLmuU4gwvrYzYOPTD16FD9hgWt7VzZoLdJn4UUhu3MEOX8_s_JDwf5aRDGcexHKEb-QMcFzl2WrJPIq7nodt5GdO4FudbyOukh90NGwNFUYJ7kFYGt2SqG6fobr-u3Se_Hj9LjOdwoTeBG9yp4K-woTUbByVQwytIqhLi00fdNYvuBo9j0RGxQvllgUI4Cs6nAMGd58jaB_ZBRYD5xsIqFGe39-ZD6oMAN022_YPPnkmBtnwDKSinr3gOfSbR7F7TL0J8hiCjL4D6_29mG1H388OWxZfvlKZu2M-x4LoCyo_HuzR0jNSRSaANQYePLuNJXfdllRfavLrmcHRunbct1EnOiIMyClL6Jq3hgyoyMHOgX2V6Q0gB6pIRmlPKqKt9O6ZTI_3Z4oHdZ9BbfiD6coS9xGv8c-qVUH1nz93CwKEcO0YRDFDFWvehUy04QO41rvG-4KTojv2JV1LUkeErjK1bHDpVclo4DPNKJp3TiqExfdKhTOgPmVxG5brEy174LWrbDmSiVzFFRmrwd1SmkX6nYHuSo2HQWaDEL0p-jsDKNOaVhW38NlQHsSCWbWMP3gzJ5cdmeUlnxpq3ZKZljIrNcUSiFHz-zCoSLowGFMWocEN5f1o6O3kh-lrKrPP0p8v9w2gOxA23kz20eJ-TttG25IDtBLdk_udnKzqyInCef415HLr2ArrhZPDlvsdl8xXXHVrW87OfLQHhUx7SU8BNcxj-hjn3LraSPz3rDRan0YEcq0xLCTynF7G1Uhk9WZl9OabyrZYlrF3ePPfow3rn6k7O923d8Lyr5iwK1YzzqY1qU-CypKvySPj5K2tVsNKzjvQd_xyouuOP7Gu249t6TL2_9ns_INpqxRSh7MZydZ_vPYml5jCzjOcskebGqOc_yaW4Xxp8kY6GMkhl-kufhW_F_ke0H9sDq81XQaILjeuxY0mlZhiY1TZSgII2TFz9fnUwbMKR637S1a3ZbKM9jfKdk19o8iHLoMD35XYumNUoSIEQm37W3mHxjgi6k0F3D1M-BuJzBHcDR4JMqI0kQi8roGP4nrDQrVl9mWYM1eJYq9_sBF4M6gDlAnW5ARklQofLcDkJxnPt2jHSGDU39jv1FdWkhjACnuTqjJS7zY4BLJYVhgp5BeHFsbvYR2zT5ZjELslnydbO9F9pgQdh5_T1N5tLJ0iEc8U-TZU5yP5ngH5CONB4kwaeoT2heOiE4ZCPuSdrzCaM4riAhwbrBdmh2vvje4lnFvYDTNrSA7ljxsvAdvhF9PEMfRxWGe1Uvgi_9mj_isGpwXX9l5BBxz1BJptnZyhg2rid1F1X84VzADacpKkkiFuXuKG8UWg0F0Vr1-nQHfcOB3b3rQnBdl5h8W1di-rnjJh7cZREsZNNgQeer9azd-tMf2yZbOzu2CphsQHKx6XveD0Y9DFivyW7Xn0qCsCix5mStjdt07VU46Wwb1kZhbvT-9Uwc7rd3jFRH722XYozUveM4hfdDAEpr3JQUA5SOqkLZ_vDjd1meMUY6P7hg8fHpyrnjiWEDsxMrXLH6caLL5-120e9Oh3V09VkeT-IorOB_s1vMSrTz9s9nhVnuI_qk1np74ZPct1flJFDPBtoOky_013UtJkXKEbFLVQA94YMTRbMSBWF_-on7GnX8Lkv9tC5-l-UHrqe7Fc_F34PtW8yt2ftzw9erb3CQX6xEq6ZRidMyKgmDksZPAb47-j0pAc7k_qeU_zcq8aLVZ6-YUW1olqtxhodPt32tsYfdB47iZPfvqUx8werCYhoRT2o6vyyTMougxXq5KZ3QccrZuTXKaf7Gg_B-yCgwngtkkQ_XaztmrQ1WZn1E6NVTsOhoimRm2KjCMXTCL2kbK9ZNerh1xZSyuaJwbgSroeSHZPBwd60JfudmC9mOG3eRJAgji6vTDHoP0EioGYP8qCC3c-wLcaiY6ZRgdoHZkad3wNz9MICW7eGyGEDL8QLaFb0JaR7m-IrdBGmYhFEahv7V9iZkcUbykGWkzKK0zLM0S1mCKqvSgJTJFb9BPor9wM-CKEKBfx0EuR-UJI0pDWmaURD5rMG8vraL5FqqzVV_3-omQCgI0qsal6zW_f1DhAZVIhDfXamb_ppW2W00iPyaa6NHEYabur-06EbEd6-_QHbVqfrm5--IDbAfbtC_AwAA__9Lqqpf">