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