<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 23, 2016 at 6:16 PM, Pete Cooper via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: pete<br>
Date: Wed Mar 23 20:16:06 2016<br>
New Revision: 264234<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=264234&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=264234&view=rev</a><br>
Log:<br>
Avoid UB when creating empty atoms.  NFC.<br>
<br>
The stack-size.yaml test had an empty atom content array.  This is<br>
legal, but asking a BumpPtrAllocator for 0 sized data may not be<br>
legal.  Instead just avoid requesting any data when we can just return<br>
an empty ArrayRef instead.<br>
<br>
Modified:<br>
    lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp?rev=264234&r1=264233&r2=264234&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp?rev=264234&r1=264233&r2=264234&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp (original)<br>
+++ lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp Wed Mar 23 20:16:06 2016<br>
@@ -334,6 +334,8 @@ struct MappingTraits<Section> {<br>
       NormalizedFile *file = info->_normalizeMachOFile;<br>
       assert(file != nullptr);<br>
       size_t size = _normalizedContent.size();<br>
+      if (!size)<br>
+        return ArrayRef<uint8_t>();<br></blockquote><div><br></div><div>You can write this as "return None;" or "return {};" if you like.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
       uint8_t *bytes = file->ownedAllocations.Allocate<uint8_t>(size);<br>
       std::copy(_normalizedContent.begin(), _normalizedContent.end(), bytes);<br>
       return makeArrayRef(bytes, size);<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>