<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 22, 2016 at 11:09 AM, 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: Tue Mar 22 13:09:55 2016<br>
New Revision: 264077<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=264077&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=264077&view=rev</a><br>
Log:<br>
More MSVC bot appeasement.  Explicitly define rvalue methods on SortKey.<br>
<br>
OwningAtomPtr does not have OwningAtomPtr(OwningAtomPtr&) or the equivalent<br>
operator= as we only want to use rvalue references in it.<br>
<br>
SortKey didn't like this on MSVC as it was synthesizing SortKey(SortKey&) and<br>
trying to use the OwningAtomPtr(OwningAtomPtr&) method which was private an<br>
unimplemented.<br>
<br>
Now we explicitly have the methods on SortKey so hopefully the bot will be<br>
happier.<br>
<br>
Modified:<br>
    lld/trunk/lib/ReaderWriter/MachO/LayoutPass.h<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/MachO/LayoutPass.h<br>
URL: <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">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/LayoutPass.h?rev=264077&r1=264076&r2=264077&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/MachO/LayoutPass.h (original)<br>
+++ lld/trunk/lib/ReaderWriter/MachO/LayoutPass.h Tue Mar 22 13:09:55 2016<br>
@@ -39,6 +39,25 @@ public:<br>
     OwningAtomPtr<DefinedAtom> _atom;<br>
     const DefinedAtom *_root;<br>
     uint64_t _override;<br>
+<br>
+    // Note, these are only here to appease MSVC bots which didn't like<br>
+    // the same methods being implemented/deleted in OwningAtomPtr.<br>
+    SortKey(SortKey &&key) : _atom(std::move(key._atom)), _root(key._root),<br>
+                             _override(key._override) {<br>
+      key._root = nullptr;<br></blockquote><div><br></div><div>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 class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+    }<br>
+<br>
+    SortKey &operator=(SortKey &&key) {<br>
+      _atom = std::move(key._atom);<br>
+      _root = key._root;<br>
+      key._root = nullptr;<br>
+      _override = key._override;<br>
+      return *this;<br>
+    }<br>
+<br>
+  private:<br>
+    SortKey(const SortKey &) = delete;<br>
+    void operator=(const SortKey&) = delete;<br>
   };<br>
<br>
   typedef std::function<bool (const DefinedAtom *left, const DefinedAtom *right,<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>