<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 22, 2016, at 11:18 AM, David Blaikie <<a href="mailto:dblaikie@gmail.com" class="">dblaikie@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><br class="Apple-interchange-newline"><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_quote" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">On Tue, Mar 22, 2016 at 11:09 AM, Pete Cooper via llvm-commits<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">Author: pete<br class="">Date: Tue Mar 22 13:09:55 2016<br class="">New Revision: 264077<br class=""><br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project?rev=264077&view=rev" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=264077&view=rev</a><br class="">Log:<br class="">More MSVC bot appeasement.  Explicitly define rvalue methods on SortKey.<br class=""><br class="">OwningAtomPtr does not have OwningAtomPtr(OwningAtomPtr&) or the equivalent<br class="">operator= as we only want to use rvalue references in it.<br class=""><br class="">SortKey didn't like this on MSVC as it was synthesizing SortKey(SortKey&) and<br class="">trying to use the OwningAtomPtr(OwningAtomPtr&) method which was private an<br class="">unimplemented.<br class=""><br class="">Now we explicitly have the methods on SortKey so hopefully the bot will be<br class="">happier.<br class=""><br class="">Modified:<br class="">   <span class="Apple-converted-space"> </span>lld/trunk/lib/ReaderWriter/MachO/LayoutPass.h<br class=""><br class="">Modified: lld/trunk/lib/ReaderWriter/MachO/LayoutPass.h<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/LayoutPass.h?rev=264077&r1=264076&r2=264077&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/LayoutPass.h?rev=264077&r1=264076&r2=264077&view=diff</a><br class="">==============================================================================<br class="">--- lld/trunk/lib/ReaderWriter/MachO/LayoutPass.h (original)<br class="">+++ lld/trunk/lib/ReaderWriter/MachO/LayoutPass.h Tue Mar 22 13:09:55 2016<br class="">@@ -39,6 +39,25 @@ public:<br class="">     OwningAtomPtr<DefinedAtom> _atom;<br class="">     const DefinedAtom *_root;<br class="">     uint64_t _override;<br class="">+<br class="">+    // Note, these are only here to appease MSVC bots which didn't like<br class="">+    // the same methods being implemented/deleted in OwningAtomPtr.<br class="">+    SortKey(SortKey &&key) : _atom(std::move(key._atom)), _root(key._root),<br class="">+                             _override(key._override) {<br class="">+      key._root = nullptr;<br class=""></blockquote><div class=""><br class=""></div><div class="">Why do you need to null that out? (it doesn't look like this type has a fancy dtor that's going to try to delete _root or do anything weird with it?) Same question in the assignment operator</div></div></div></blockquote>I don’t have a good answer :)</div><div><br class=""></div><div>To be honest, I just figured that nulling out pointers was good practice, but I’m not basing that on anything other than my own thinking.  </div><div><br class=""></div><div>I'll give the bots a chance to run on this as is (i’ve broken them numerous times already), and assuming I don’t have to back out this whole series of patches I’ll fix this up when they are happy.</div><div><br class=""></div><div>Thanks</div><div>Pete<br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_quote" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class=""> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">+    }<br class="">+<br class="">+    SortKey &operator=(SortKey &&key) {<br class="">+      _atom = std::move(key._atom);<br class="">+      _root = key._root;<br class="">+      key._root = nullptr;<br class="">+      _override = key._override;<br class="">+      return *this;<br class="">+    }<br class="">+<br class="">+  private:<br class="">+    SortKey(const SortKey &) = delete;<br class="">+    void operator=(const SortKey&) = delete;<br class="">   };<br class=""><br class="">   typedef std::function<bool (const DefinedAtom *left, const DefinedAtom *right,<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a></blockquote></div></div></blockquote></div><br class=""></body></html>