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

    <tr>
        <th>Summary</th>
        <td>
            Clang does not define `__STRICT_ANSI__` on Windows
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    Clang's documents explicitly specify that [`cXX` modes, in contrast to `gnuXX` modes, define `__STRICT_ANSI__`](https://github.com/llvm/llvm-project/blob/122afae10ed28564b64530de571ce8e4ce584b2c/clang/docs/UsersManual.rst#differences-between-various-standard-modes). However, it does not seem to be the case on Windows.

Tested:
```
clang version 20.1.7
Target: x86_64-pc-windows-msvc
Thread model: posix
```

On macOS, running `clang -std=c11 -Xclang -dM -E - < /dev/null` and `clang -std=gnu11 -Xclang -dM -E - < /dev/null` produce a single line of difference – `#define __STRICT_ANSI__ 1`. On Windows, however, both have identical outputs; `__STRICT_ANSI__` is never defined.

This makes it hard to detect the availability on GNU extensions in headers.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUlM9u5DYMxp9GcyFsyPL_gw-zybpN0d0ATRbNbSBLHFutRhqIspO8faGZbFOkRdECBgzYFEXy932URGZ2iAOrP7H6difXuPgw_Hz3010pdpPXr8ONlW5moiXQXq0ndJEAX87WKBPtK9AZlTm-QlxkhJSl4erpiTUcTl4jMXEDxoHyLgZJEaIH1vDZrR9iNB6Nw_TvcHh4_OXu5vGw__pwdziwhrP6loluifFMrNwzMTIxziYu65Qrf2JitHb7_srOwf-GKjIxTtZPTIyFEPIoseCoRVc31dRUdck11m2hsMNKYd1Vk1BMjOra6qi9IibGb4SBvki3SpsHikyU2hyPGNAppGzC-Izosk0G41fKKEqnZdDZW099Dj_6Z9wwXGYQQXskcD4CIZ7SICaEuCAoSQjewa_Gaf9MOeN7xvePSBF16pfv0wyuD99faoQNAxnvQPC8yNsULsOMkZV7eOmaQ1NlZ5U9XxNmJ9pUClkCSn0ZuU2BZ0_m5UN2xvf3Dk5S3T-kqsPqnHFzwnK9N6OoWXmrigKyp7dP-gtknyEDVt5AGh5uTIxutTYBlk7_7fTs1v98_hy8XhWCBDJutgg2ycQf4R0FsM-CdZz1ZbopUbpq6YOQoGANz-H-z0GnBpd3QpOPCyxyQzAaXTRKWvBrPK-RWPnpn5UJhsClBG_61d_hLYbgJH9HSuAXGXTirTGiihfmcpPGyslYE18T-x--fgN8iegSVUqOWVBqDJTv9FDqvuzlDoeirYu-6Pum2y0D8kK32DSNbltRK5RdP7VCFupYi0rzemcGwUXNW94KLhre5W3X637qRKtq3tZNwSqOJ2lsnoyT-zDvDNGKQ1G1ZdfurJzQ0mUzCPFmDZGWRBguTpvWmVjFraFI7ymiiRavS-Nd8f_m7r9If7cGO_xvn1-KTn59q3sbxB8BAAD__zjGh4k">