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

    <tr>
        <th>Summary</th>
        <td>
            Clang not diagnosing invalid literals in unevaluated contexts
        </td>
    </tr>

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

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

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

<pre>
    I cannot find anything that permits a compiler to accept the following (in either the C or C++ standards).  Integer literals must have a type and a value in range for that type:

#if 0? 999999999999999999999999999999999999: 3
#endif

Clang accepts it even with -pedantic-errors.  It seems that GCC, EDG and MSVC all reject it.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMkjGPpD4MxT9NaKwZQYBhKSh22f-stvhXJ11viAHfhQQlhr359qfMjLTtIaQ0z_bPfg9j5NkRdap-U_V7hrssPnS_b_u-8bigywZvbt0njOicF5jYGUB3k4XdDLKgwEZhZYmAMPp1Y0sBxAOOI20CshBM3lr_lfRKv7ADYlmSaCHowQfolX5T-g2ioDMYTFS6PQN8OqGZAlgWCmgjrHsUWPAgQJDbRoCJBQ60OwE7COjmNC08uJJEla8qv_-65AlyVV6h_YdPla9QPsrIGZ4eTXqLbn5uFoEF6CAHXywLnDYy6ITHE4XgQ0z8ApFojQ-aj75Xuof_3j_u2P__-NkDWguBftEowHLOTFeatmwxo65oqiov66Yps6UrqKCiLS_NMDT5MFTliO3lUrTThVo9DUPGnc51nVd5U1Ra1_pca0O5LhrzgvU46VZVOa3I9mztsZ59mDOOcaeuKKtL_ZJZHMjGewS0HtOSSuuUhtClgtOwz1FVueUo8buFsFjqHjdJ0TCMs_Mx-czuQMvm2zp2sDtKTqGQgdE7oT8Ssz3YbhHZYjJKX5W-zizLPpxHvyp9TbOez2kLPl1K6eudPSp9feIfnf4bAAD__6CE5Yo">