<div dir="ltr">SectionPiece maps input offsets to output offsets, and InputOff can be greater than 4 GiB if its input section is greater than 4 GiB.</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 30, 2017 at 11:53 AM, Rafael Avila de Espindola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Rui Ueyama via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> writes:<br>
<br>
>  template <class ELFT><br>
>  MergeInputSection::<wbr>MergeInputSection(ObjFile<<wbr>ELFT> *F,<br>
>                                       const typename ELFT::Shdr *Header,<br>
>                                       StringRef Name)<br>
> -    : InputSectionBase(F, Header, Name, InputSectionBase::Merge) {}<br>
> +    : InputSectionBase(F, Header, Name, InputSectionBase::Merge) {<br>
> +  // In order to reduce memory allocation, we assume that mergeable<br>
> +  // sections are smaller than 4 GiB, which is not an unreasonable<br>
> +  // assumption as of 2017.<br>
> +  if (Data.size() > UINT32_MAX)<br>
> +    error(toString(this) + ": section too large");<br>
> +}<br>
<br>
</span>Unless I am missing something, nothing in the code actually fails if a<br>
section is larger than 4GB, only if a SectionPiece is that big, no?<br>
<br>
Cheers,<br>
Rafael<br>
</blockquote></div><br></div>