<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/122745>122745</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[libc][build] gcc errors related to FP16
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Sh0g0-1758
</td>
</tr>
</table>
<pre>
After patching #122500, we ran into this new issue:
```
$ gcc --version | head -n1
gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
$ cmake ../runtimes -G Ninja -DLLVM_ENABLE_RUNTIMES="libc" -DCMAKE_BUILD_TYPE=Release -DLLVM_LIBC_FULL_BUILD=ON
$ ninja libc-unit-tests
[482/6748] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.sinf16.__NO_FMA_OPT.__NO_ROUND_OPT.__internal__.dir/sinf16.cpp.o
...
libc/src/math/generic/sinf16.cpp:58:41: required from here
libc/src/__support/FPUtil/except_value_utils.h:84:20: error: conversion from ‘int’ to ‘__llvm_libc_20_0_0_git::fputil::ExceptValues<_Float16, 4>::StorageType’ {aka ‘short unsigned int’} may change value [-Werror=conversion]
84 | out_bits += sign ? values[i].rnd_downward_offset
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
85 | : values[i].rnd_upward_offset;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libc/src/__support/FPUtil/except_value_utils.h:88:20: error: conversion from ‘int’ to ‘__llvm_libc_20_0_0_git::fputil::ExceptValues<_Float16, 4>::StorageType’ {aka ‘short unsigned int’} may change value [-Werror=conversion]
88 | out_bits += sign ? values[i].rnd_upward_offset
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
89 | : values[i].rnd_downward_offset;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
...
```
cc: @nickdesaulniers @lntue
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsVs9vozgY_Wu-XCyQsXEghxwghNVo07Rqm9nZk2XACZ4Sw9qm3V76t69M0slMq_2hao7roGDjz-97th88C2vVQUu5BJYDK2ZidG1vlnctPuAgSlg6q_rmeZntnTRoEK5ulT4gIDQihGEMZIWeJDJCI6Vdj1yrLNLyCSlrRwk0Q4Azf83x-cIZkBgd6hoFwaM0VvUaQbJCrRQNCnTkB_heIOmuGrUbUURDGuJgPk5N8kLiEMdAFueOM2J9FA8ShSGQ0ozaqaO0KPgFbZX-KlBQbDafr_h6m-WbNb_dbe8_Xa3vgBZASKeqGghBQbG6yn5d83z3aVPw-99v1kCLW9lJYeUrwOZTvuLlbrM5RQEtrrfn_HpK5MGCUSsXOGmd9X0sj1MCpJwncQqsQPmousYv4urLF9RXX2Xt0IlDaY3_PwrXAikPUkuj_IPVlXiQpeqkBVL60NCaOvRh4TkotErvo3nI-faal1cZv765PzVur3fb4txU2kmjRcd52Cjj851G1cMQ9oCzMAwBZ__M5TIEaMZSoFkc-W1GyMg_RmVkg_amP6JWGvkWjHM7DkNvHJCyvNk51QEp5Z-1HBx_FN0o-ehUZ8MWaJbGQDOCPbQ0pje-Uvf6VTFTDlgTSDEsUqXda32BXH_p4LzrHo_cs-AEc_87KAc0A5rtB5_tVF9PJD57DhboipddL1w09-qOga5PQXeuN-Ig758HeckGSS4exCWjbXvj0Kint6pB3zODpEBH8YzqVuiDRNOMEbA8-O08w-IyQWAFYL-qaTy9HZfSj45XylkEJAdaIJ8IAS1PeBZYroAVodENb_on_SRMw_v93kp3AkToDeDLawG2fvlP5cyMvQF6V_yevWc1Dt9zovnf0HpX_o3Sx6WW_i-1aUPTj0vtx039OUI7s1p8TGZvxf-ThDbRquto6EbrE4uuQ0_CaKUPFlXSf9edkcLJBgl70pP99mn9wQU9zGSQMdaqfmikFWOnlTTWP-q0GyWaNUvaLOhCzOQySug8SZMFprN2mUR7wuIKR4u9iBesSuZ1gjGtWZUsEkzxTC0JJgxHEY0SzDAOCaOYRlEtUpYSxvYQY3kUqgu9bMPeHGaTZS8jQpKYzTpRyc5Op4JvFunPB2bp44NqPFjPUllnLwhOuW46SUwDWAEsr7zbedvznn5aDmRkNy2Q61F5E81no-mWrXODX1Agpfcb5dqxCuv-6B2ve3y9BYPpvWECKSe23hDPhB-X5K8AAAD__0qvszs">