<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">