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