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

    <tr>
        <th>Summary</th>
        <td>
            [clang] compiles malformed code successfully: variant with array
        </td>
    </tr>

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

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

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

<pre>
    clang upto trunk compiles a variant with an array alternative. 
https://godbolt.org/z/Gf3M69v4K

MSVC correctly rejects the code.

std::variant requires all alternative types to be Cpp17Destructible. See [22.6.3.1](https://eel.is/c++draft/variant#variant.general-2)
arrays are not [Cpp17Destructible](https://eel.is/c++draft/utility.arg.requirements#:Cpp17Destructible)

```cpp
#include <variant>

std::variant<int[3]> v;

int f() {
    return std::get<0>(v)[1];
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUk0-vqzYQxT_NsBldZMY4JAsW-fPoonqrJ3VvzIS4dYDaQyr66SsS7nu390mVKiGDwHPOb8wcm5LvB-YazAnMJbOz3MZYS1yufrAhLFk7dkvtgh16nCcZUeI8_IFuvE8-cEKLDxu9HQT_8nJDO6CN0S5og3AcrPgH5wjqAup4E5kS6CNQA9T0Y9eOQfIx9kDN30DNL1f9dXd4lL--tr_Wr99-O6MbY2QnYcHIv7OThHJjdGPH-ce9SbpVXh_fkSL_Ofu4UobwkQhlmTihjNgynqepqC6cJM5OfBs4x2_MCOZElO9ynRdgLkD7f-Mzh9wnoMYBnYBOXbRXAWo2ayC9PeU9DxxteCOgw4vzeUIJbWQcRlmdfmL4P5az-OBlyW3s863jOw-SgDTo48_S7xjbulOvy03T9oa0H1yYO0bQ5_eG9Jf_OmrQZz8ImJNeyfUXfIA-fSzwg-AVaA90QKi2T4iIkWWOA34X7HkVU6sf7R8rrDk9_8B3veryiTzrat0d9MFmXBcV6Z0pTKmyW61sURwqVrZ0rmyVMa02ll1nuv2-KkvKfE2KSrUvymKnTKlys3dX1VambHVFnbFQKr5bH_IQHvd1VjOf0sx1oUpVHrJgWw7pGR6iZ0iAaM1RrNeCt3buE5Qq-CTph4R4Cc_EvSrM5Uec7jZcx3jn7jndmGbnOKXrHMIC-vgpa-sYZXMM9adkebnNbe7GO1Czmm63tymOa3qAmmcT6yhtfTxq-icAAP__-7A-dQ">