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

    <tr>
        <th>Summary</th>
        <td>
            Imaginary types are not supported, violating ISO C Annex G
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          Keith-S-Thompson
      </td>
    </tr>
</table>

<pre>
    This program:
```
#include <stdio.h>
#include <complex.h>
int main(void) {
#ifdef __STDC_IEC_559_COMPLEX__
    printf("__STDC_IEC_559_COMPLEX__ is defined as %d\n", __STDC_IEC_559_COMPLEX__);
#else
 printf("__STDC_IEC_559_COMPLEX__ is NOT defined\n");
#endif

#ifdef _Imaginary_I
    printf("Imaginary types are supported\n");
#else
    printf("Imaginary types are NOT supported\n");
#endif
}
```
compiled with `clang -Wall -Wextra -std=c11 -pedantic-errors` (llvm version 15.0.0) produces this output:
```
__STDC_IEC_559_COMPLEX__ is defined as 1
Imaginary types are NOT supported
```

ISO C Annex G was informative in C99, but was made normative in C11. 
Imaginary types are optional in C11, but are mandatory for any
implementation that predefines `__STDC_IEC_559_COMPLEX__`.
(Complex types were made optional in C11, but that's not relevant here.)

To conform to C11 (and later), clang should either implement imaginary types
as defined in Annex G or remove the definition of `__STDC_IEC_559_COMPLEX__`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVF1r6zgQ_TXyy2Bjy7ETP_jhXqdZyn50oYG7b0GxxrEWWTLSOG3-_aI4bdoloYVAMHNmznycI-G9OhjEmhU_WbGOxES9dfXvqKiPn-Ntb4fRWxPtrTzV2155GJ09ODGw_AdL1yz9wcr08ps_ea5MqyeJwPLGk1Q26Vn-cCva2mHU-PohrgzBIJRhfHW0SjJeAVv-vOZ2EjvY7Z6362b3-NDsiqLaNU9__v3Hwz-73QwDABidMtQxvmKc30OD8iCxUwYlCA-MF5IVjWGcM97c5-AVy68NofZ4of0u519P2zfed77PNY1U3eXrf4M_DuKgjHCn3ePtYd8BQKcRPQiH4KdxtI7u0l1H-Eax0P1XBT_0v1zfFEk4vNIo4UVRD6xMWy3MAeJfQmuIf-ErOQGxJ8nydZtlEI8ohSHVxuicdZ6VKTC-0vo4wBGdV9ZAViRpkgbFjM7KqUUPFPRqJxonuifXb6ojm9Ffb-SmJebc5ydo4Icx-Aq_wYvwoExn3SBIHRGUgaaqgvL2E52jg5AI5hMgyxK434gdSVkj9AX6ViuEBmGkIOtO0FkHwpwubgv2G9CQCJlAvSAYHc5z-3CXuzYo0-Tt4KtmtvGllRc8E8q7DQUaxpcejCVwqPEoDEGPDpOgpA8r21po7XlJQDaUCEcXRoIWhC6AeQOzdHxvJy0hPFvo4H0wUJ8XNdcV19sq834S68DhYI8I1OMMUOe92O6rVUSyzmWVVyLCOiuXi6JK-bKK-jpbtAu-RC4x5Xm1KsSyyrDN9_miy_ddVkSq5inP04wvsqpYFlVSZnvZLlZVJ9Myz7uSLVIchNJJEHti3SFS3k9Ylykvq0iLPWp_frw5N_gC52DwZLGOXB1y4v108GyRauXJX6uQIo31LR2Fs1wFzRs4KqsFKXOATxqOJqfrnmj0wVx8w_jmoKif9klrB8Y3geryF4_O_ostMb45N-gZ35wH-C8AAP__kHL_5w">