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

    <tr>
        <th>Summary</th>
        <td>
            [Clang][OpenMP] Struct data member is not captured correctly
        </td>
    </tr>

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

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

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

<pre>
    The parallel region of the following code doesn't execute.
```
#include <cstdio>

struct S {
  int a;
  int b;
};

void test(S s) {
#pragma omp parallel for
  for (int i = 0; i < s.a; ++i) {
    printf("%i : %i : %i\n", i, s.a, s.b);
  }
}

int main(int argc, char *argv[]) {
#pragma omp target teams num_teams(1)
  {
    S s;
    s.a = 7;
    s.b = 11;
    test(s);
  }

  return 0;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx9Uk2P2yAQ_TX4MmrkQPx18GGTdG9VK23vFdjYpsJgAd52_30H4mySlbYWgnkznuG9YYTt39qfk4SFO6611ODkqKwBO0BA92C1tn-UGaGzvYTeSm8IrQLIv7Jbg9yR_EzyJ1Lm27pAypTp9IoZhJ06H3plCfu6BdPug1u7AC9AquPFA6BMAE7YAxbvmFTnm532V6t6CNIHQusX8IQ2t2pIYXF8nDnYebmpG6y7VkcTMDFeopDmGXIsn8wT-F3kgeEjLvVQGPBbHGYNmEwoJbSIOU_wYJDiZFLwBCpusWA6BBa7kxhFvau7kxZZzVyZjSB3Yxfzu4lH0k-IX0lxJMX5P6ID_iUDNojPHsw6_0oWVtxHDu8E7nTFJrI7jKxTZ6oPXpG8-_2De3sI_5nAzeFkWJ1Jzf6o_DpEWd-yvmENz4IKWrao9KS5GaPc4vh9kebbD7Th5TJDPQ8cZjkL6UChUhug4wveInucWudkF_RbtjrdTiEsqBD79IxrVGFaxa6zMwKtX6_Hl8XZ35iEUHm_SlT0XJR0X2dTezhI0TQsPzBRD0JU8lCUlSyLeuj6wyB4prmQ2kfK-PxdYn0ZAzwsMp-XiItzplqaU5qXtKB5XrBm1zBW1U1ds2qgZVlQcsgljoDeRU4768bMtYmeWEePQa188Lcg916NRsrtaj8pHRQ32218DZN17dWbJWFtUvUP2D4gGQ">