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

    <tr>
        <th>Summary</th>
        <td>
            Spurious -Wbitfield-enum-conversion warning when using signed enum in a bit-field
        </td>
    </tr>

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

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

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

<pre>
    Short reproduction:

```cpp
#include <cstdint>

enum class E : int8_t {
    sell = -1,
    buy = +1,
 other = 0
};

struct Data {
    E e : 8;
    int padding : 24 = 0;
};

struct Aux {
    E e;
};

auto make_data(Aux const& aux) -> Data {
    return Data{.e=aux.e};
}
```

The warning I get from clang (under `-Wconversion`) is:

```
<source>:19:20: warning: assigning value of signed enum type 'E' to unsigned bit-field 'e'; negative enumerators of enum 'E' will be converted to positive values [-Wbitfield-enum-conversion]
 19 |     return Data{.e=aux.e};
      | ^
<source>:10:5: note: consider making the bit-field type signed
   10 | E e : 8;
      |     ^
```

But the bit-field type _is_ signed. And I can't write `signed E` either. 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMVE1vIjkQ_TXFpQQydn9x6AMEkOY8K80xMu0KeKexkV2GZH_9ym5mQjZZaaSW2l0f71W9KreO0R4dUQ_1BurtTCc--dAfAl3_sW528Oat_37ygTHQJXiTBrbegVqDKE8jpme4XPKnVNYNYzKEoJ6GyMY6BrWbgsmlMw6jjhF3CGqN1nH3zAjtBsQaETHSOCKoLc6XIJ_uxkN6KzaQm19WzycKxSgydLsFtZk4Ioc0MG416wfcHVIh7Ka4bLKO8aKNse5YXLK6401InyHX6fUj4udIndjjWf-kZ6NZg-xyzuBdZJAN6vQKcoVzULv_1heIU3DFCu1mQaC2Or0u6B283T6qPdH9dSK86eByC9_wSIwvwReFc0-yS85klRox_zF4d6UQ8-gakauw8fMM81k9RZ_CQHloar1cgVpLkfW5E-XjtDOZ9arHROhfsCyRwTJhfrsQgmx3IFtkj8ndvQfL8xdLo8leAtmC2qCjo2Z7pZJLQbMPMSMWqF8oNzuOeCCc2mAyGffioy2ZpYqIUG_mPw6WC8U8588f2q6zgLhcIbRP-Eeal6gSDvXuC22yLHXWw3mm_M6Ttlnys_6Z1eETPfRcZJmUmMCXooB_sZv4u8g788e5bxJ_hf1s4_OdYIFrZ_AbDtqBbBlvwTLlTbhPYgeNQLL5Fi1wZnplVmqlZ9Qv26qp61Y03ezUi6YR2phWLY3uBtF2Xf0yiE5WVSdEZaqZ7aWQtahFs-yqSnaLpmmrrmpXJGU1VJWBStBZ23ExjtfzwofjzMaYqF-qrlXdbNQHGmP59Ujp6IbFC1LmP1Hoc9L8kI4RKjHayPEdhi2P1H-_pGB9ivj_c_99QW4ncphiPj4uq3Wo34WcpTD2J-ZLuR1yD3J_tHxKh8XgzyD3mf_-ml-C_5sGBrkvVUeQ-3tb117-GwAA__8TmJYP">