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

    <tr>
        <th>Summary</th>
        <td>
            clang++ crash: Assertion `(!Is64Bit || isInt<32>((long long)FIOffset + Imm)) && "Requesting 64-bit offset in 32-bit immediate!"' failed
        </td>
    </tr>

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

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

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

<pre>
    When compiling the following program with `clang++ test.cpp -o exe`

```cpp
#include <iostream>

void may_throw() {
 while(true) {
    throw std::out_of_range("test");
 }
}

int main() { 
  try {
    may_throw();
    volatile int a[1000000000] = {};
    return 1/ (a[500000000] & 1);
  } catch (...) {
    return -1;
  }
}
```

I encountered the following crash

```
clang-18: /llvm-project/llvm/lib/Target/X86/X86RegisterInfo.cpp:900: virtual bool llvm::X86RegisterInfo::eliminateFrameIndex(llvm::MachineBasicBlock::iterator, int, unsigned int, llvm::RegScavenger*) const: Assertion `(!Is64Bit || isInt<32>((long long)FIOffset + Imm)) && "Requesting 64-bit offset in 32-bit immediate!"' 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.
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVE1v4zYQ_TXjyyCGRFmSddDBH2vAQIsW2QJtTwFFjSR2KVIlR8nm3xeUnCZOe-qphkGaQ7_H4bw3lCHo3hLVkB8hP2_kzIPz9e_S9qeB7Oss7aZx7Wv960AWlRsnbbTtkQfCzhnjXuJq8q73csQXzQNCkSgjbQ_iCOKITIG3aprwwSF9JygSSM6QHG5jkaxfNU23iMi0VWZuCSE7aRfYkxwh-_IR9ux0i6N8feLBuxcQexAVQnlcd_Fl0IZA7NnPdL-DiAsEA7eQHSA7uJmfXPfkpe1pIRIxYxACRAXZGw7K8-38v38so7aMo9T2PQV8O4n96_3Bn_J9J0fEZ2cka0MYCSXkxzR5-0B-RsjOC1d5vkN54tlbTEFcEMQ-4vI7mCji5sejoDyjkqyGCNhut_8oz43zIb0Hfb79m24fi3FFssrNlslT-8kiyssw_Kvy63KxzEO6h-yAIC7GPI8Pk3d_kOLbMk66AXH5RfqeYvS3fbGOj9TrwOSvtnPRa5AdqiSJVM_a8ywNNs4ZXFgW0T9h1iAZPWormS5ejnS1LX0HsX8H_SjVoC0dZdDqaJz6toY1k5fsPIhTVC9Os126qn1bv3M8Uv9VyWeyPXkQh1h95WzgmOshBPKsnY0ttHgkvYZid9SMUJ6gPKEOV8uQnTIR-yH-Y2-c7TEOIKrL9aeuC8QY--46jlH5KK8oohFAiEf6c6bAUY9i99BoRrcCtMVMLAE9jtRqyQQiXZqgxE5qQ-121ennH74cvn7BMDejZpTYzD16mpxnZIcD8xTiTcUFxKXXPMzNVrnxg4T3wuoQZgrRv9LGcq2NH62zGAYbqb6xl4piGSdPk3eKQqAWg5v9Go5IGYJTMe0W_WwxKK8n3n5y2qats7bKKrmhOi2qMi-KTFSboU6bvCSRdJR3Iu-6qsp3XVaqPYl93uxS2uhaJCJLk7RM96lIqm0p9m3Z5mnRijQrWgG7hEapzTbeb-t8v1luVhdVVuQbIxsyYXljhbg9jiI-t75e6tHMfYBdYnTg8M7Amg3VH9_StYn-91bZzN7U_90KS83-CgAA__9RhvKW">