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

    <tr>
        <th>Summary</th>
        <td>
            [flang][OpenMP] atomic write on complex
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            enhancement,
            flang:openmp
      </td>
    </tr>

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

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

<pre>
    ```
program complex_write
  complex :: z
  !$omp atomic write
    z = cmplx(1,1,kind(x))
end program
```

This currently hits an assertion guarding types allowed to be used in an atomic write. Similar work has been done already for atomic update and atomic read:
- https://github.com/llvm/llvm-project/pull/111377
- https://github.com/llvm/llvm-project/pull/92364
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykUk9v3C4Q_TTjyygrM5h1fPBhk9XefvpVau8VNrM2DQYLcLKbT1_Zm1Wb3qpKA4jHvOHNH52SHTxzC-oJ1LHQSx5DbHPn9Fh0wVxb2JcfVh6hPMwxDFFP2Idpdnz5_hZt5tsT3kEEeQB5wPc7DiSAqjDNqHOYbI-fWIjvCPKI_TS7C9CjAHpe14v1BujxAtSstnmzN_gh4Qb8Ie-2fxttwn6JkX12VxxtTqg96pQ4Zhs8DouOxvoB83XmhNq58MYGc8COcUls0PqN8ZvcHX61k3U64luILzjqhB2zRxM8o3aRtbniOcQ7aZmNzozamzuyuqyl2TQ-4JjznNY7nYBOg83j0u36MAGdnHu9Hw9zDD-4z0CneXEO6CSEkHX9r1EakvuqMK00jWx0wa2oqalLRaouxvZs1FmxVKy4r2phmlKVsq9FI_Z70qUsbEslVaIkKeqqVPVO1GeuhKj2TH3VkISq5Elbt1u_34U4FDalhVshZFU3hdMdu7SNHRH7UfueJ_YZiICegejstB9AHsLMfppXWB2L2G7JdMuQoCqdTTn9ip9tdtsg36jqCOrp_5n9f19AHT-1EoO_z2qxRNf-dQ23VNLWiy2b15Z-BgAA__8VOAcT">