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

    <tr>
        <th>Summary</th>
        <td>
            bool bitfield /= complex gets infinite loop
        </td>
    </tr>

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

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

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

<pre>
    This code gets infinite loop at runtime.

#include <assert.h>       /* assert */
#include <stddef.h>       /* offsetof */
#include <float.h>        /* FLT_SNAN */
#include <complex.h>      /* FLT_CMPLX */
#include <wchar.h>        /* wchar_t */
#include <stdio.h>        /* printf */
int main(void){
  if(1){
    struct bit2 {
      unsigned int uibf : 7;
        signed int sibf : 7;
              bool bobf : 1;
    } bits = { 1u, 1, 1 };
    struct bit2 res;
    res.bobf = bits.bobf /= CMPLXF( 1.5f, 1.5f );
  }
  return 0;
}

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8U0FvozwQ_TXDZVRk7BDgwCFtP079qpW2h71VBo-DVwZHtkm3_35lkipR1CxCWLx5783YnpEhmP1M1EL5COVzJpc4Ot_GT0WTnLPeqc_2bTQBB6cI9xQDmlmb2URC69wBZUS_zNFMlAPbpZcLMw92UYQgnmQI5GM-gvgPWAO8A77DE4jAdwm4lYSoFOkbidM6UHT6nkhbJ2_TdC9v7z9fd6_3NIObDpb-fKN6-v_Hy697so9hlP5GtGLv_9qScTeSgzdzvNqPmSNO0szA66MzCngD1SOwHaLRwOviCkAM0S9DxN5EjhcUcZnX61SY3BbTawSxwwrEhYJ4RQl3KKend85i786U4kKB6jnlDgjiOeXHYgH-hMX6SdEL9bpST-ES8BTys_fJ7PzHuwSsN9ABr7HIS7365mWKNl8OKUtaPcXFz8hO-AnNVCtUIxqZUVtUWyY2gm2bbGzFIHrJdFP1TFaDrOVApVKVkroqazGozLSc8bJghWB1UbAmH3Qtt5umKUtJgosaNowmaWxu7XHKnd9nJoSF2mIrio3IrOzJhnWaOJ_pA9cocJ6Gy7dJ9NAv-wAbZk2I4WITTbTUno7cRG3Iqq_DODfqN-OXLd62Y4yHAGLtI97tTRyXPh_cBLxL7ufl4eDdbxoi8G6tKQDvzkUfW_43AAD__13CKTc">