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

    <tr>
        <th>Summary</th>
        <td>
            [OpenMP] crash on invalid C++ code
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          k-arrows
      </td>
    </tr>
</table>

<pre>
    Reproducer:
https://godbolt.org/z/4vscKvhW9
```cpp
template <typename T>
class I { };
struct R { R () {}; ~R () {}; I<int> r; };
struct T { T () {}; virtual ~T () {}; I<int> t; };
struct A : public R, virtual public T { A () {} I<int> a; void m1 (const I<int> &, const I<int> &); };

void A::m1 (const I<int> &x)
{
  int w = 0;
  #pragma omp parallel for reduction(|:w)
  for (a = x; A::a < 10; a++)
    w |= (1 << *A::a);
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0k0GP2yoUhX_N9eZqIgx2bC-8IMlEGj09vadopK4xMAktNhbgZKaL-e0VdtpmpqmEZHM55-Ngc0UI5jho3UK5gXKXiSmenG-_PQjv3SVknVNv7UGP3qlJag-MA-GnGMeQXuke6P7oVOdsXDl_BLr_DnRfnIP853z60gDhsCbLkOMIhEfdj1ZEjcC28W3Ug-g1PgN7BMKlFSHgE0K1Qah2wDZAeIh-khEPc_WAQGugTZosCny_U3sCtjVDBPaIPs0_w55n2POfxrPxcRIW3--s3UDjPShHYBzHqbNG4gHo9hftWlt25R_Jt1gxR3BGYZ8nlXRDiLcCoOvEvV9vPoQCwmcST7-J8b8DX5OT8JSGcEQzRLwgsB2SBYQIlI1eHHuBrh9xFF5Yqy2-OI9eq0lG44Z0pmoLjF8WHM7LQGsxs15TtmuUVNlinvAogG7msXgwbZ0wu2TNkzBpgfKf3uWYc97d7eXKVMtUwxqR6Tavioo166LKs1P7IlQpc9XVQivWUN3JrpQVW8tcFIwwlZmWElqSMl_neVmwfCU6oZt1rep6reqyqqEguhfGrqw99-mSZyaESbd5QWjBMis6bcPcPpQO-oLzKlCausm3yfTQTccABbEmxPAbE020c9_9N-rh3_-h3KH0IpzQDWiGs7BG4Xb5QCid0tnkbfup9Uw8Td1Kuh7oPoGvj4fRu69aRqD7OU4Aur_mPbf0RwAAAP__MaMZ3w">