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

    <tr>
        <th>Summary</th>
        <td>
            truncation in conversion from uint64_t to size_t
        </td>
    </tr>

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

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

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

<pre>
    As pointed out in https://reviews.llvm.org/D122836#3423517, passing the `uint64_t` result of `getZExtValue()` to `StringRef::substr(size_t, size_t)` as is done below might silently truncate the value in ILP32.  This is just a reminder to review and fix that and any other calls like it.

```
lib/Transforms/Utils/SimplifyLibCalls.cpp:  Str = Str.substr(0, LenC->getZExtValue());
```

It looks like the code in `DWARFUnit::tryExtractDIEsIfNeeded` in `llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp` might be subject to the sametruncation:
```
    if (auto *IndexEntry = Header.getIndexEntry())
      if (const auto *C = IndexEntry->getContribution(
              Header.getVersion() >= 5 ? DW_SECT_LOCLISTS : DW_SECT_EXT_LOC))
        Data = Data.substr(C->Offset, C->Length);
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxtVMGO2yAQ_Rr7MqrlYDsbH3xI46waKWqrJrutellhe5zQYogAp5t-fQeSbFo1FjIMDI83bwYa3Z2quYWDFsphB3p0IBTsnTvYKJtH7JGawaPAXzaR8jgk2uxoqp4wNsumEcuynGXF5CFiCzhwa4XagdsjRNN0JMhp_uJoCAbtKB3o3i_s0H1fvrpnLkeM2CxipXdx2q9tnCGIL9j707O5HRvrDDlZ8RsJik65jsImbkFY6LRCaFDqXzCI3d6Rj0Tl5AmcGVXLHQZOR3-gD2-1_pyxBGC7F2H_j9E64ERyEKpD46mcYwauOujFK23nLhhcnUATmIGWS2lBip8E6ZIoraN0fvlP00sLphQNKbY1XNlem8GS8eSE9P1GDAcp-tNaNAsPl7SHA0UNQDJAlNW-T940SH34a1SLd1G2vCMitez9XQrn_8qB1PrnhbRXpNVdEIQc66_zL49PSriz8M6cCN3w1tWrpV31HxE77LzkZ3dfCxTAObYam3G3Ur32Y49z7T1eiIn2nTPTIFA8P7B1XmXPwfIBL2kSWvnT70UA9AmqHjbjo68UNl9Rql6XiogGpT4gp9QlJMtt4abLG8YVpdXK5_yCtQgQt40XgReaDNGMgRhh_YVy_W7HPqOxFz9WEt7SQxY0eIT668tmudi-rD8t1qvNdgM-x9fJ5bew8D9RgJo7Hpj5wa0OQv4_9b3FcCGCSWWxc_u7JRB3VdaVWcljJ5zE6ia2zyUJcTwzh97oAa631qfnfNXi0cjq3xdhJ9x-bJJWhxq4lAJ17w5G-9ySKawd0dd4kT9kZbyvWp7Nim46zWfdZMoLXkzbnpezjrVFXvJmEktOV9hWUfE-KupYVCxlLM3TfJKzYpIl5WySI28bnLWcN-VDlKc4cCHfnqXYVIED1aKlRSmsu71ZsX-bdgrxik-p32tTDRYbbeLAtgpU_wAkS5EM">