<p>Hi All,</p>
<div>Complex values stored in variable value mismatches if program compiled clang and gcc.</div>
<div> </div>
<div>Below is the sample program printing byte by byte stored "complex long long int" value,</div>
<blockquote style="MARGIN-RIGHT:0px" dir="ltr">
<div><em>int main()</em></div>
<div><em>{</em></div>
<div><em> _Complex unsigned long long int lli_val= (5668231682443686620ULL + 7618395480654047911ULL*__extension__ 1i);</em></div>
<div><em>// _Complex long double ld_val = (5668231682443686620ULL + 7618395480654047911ULL*__extension__ 1i);</em></div>
<div><em> int size = sizeof(lli_val);</em></div>
<div><em> int index = 0;</em></div>
<div><em> printf("long long int val:\n");</em></div>
<div><em> while (size != index)</em></div>
<div><em> {  </em></div>
<div><em>    unsigned char cval = (unsigned char)*(((unsigned char*)&lli_val) + index);</em></div>
<div><em>    printf("%x", cval);</em></div>
<div><em>    index++;</em></div>
<div><em> }</em></div>
<div><em>}</em></div></blockquote>
<div>Outputs of clang compiled, gcc compiled values are:</div>
<div>For Clang,</div>
<div>long long int val:</div>
<div><strong>dcb2ab00000a76ad35e0000</strong></div>
<div>For GCC,</div>
<div>long long int val:</div>
<div><strong>dcb2ab0af9aa94ea76ad35e53fab969</strong></div>
<p>Similar behaviour observed for "_Complex float, _Complex double, _Complex long double" types.</p>
<div>Complex values in clang are not handled in similar to GCC, Could someone comment about it.</div>
<div> </div>
<div><br> </div>
<div>-rajesh </div>
<div> </div>
<div> </div>