<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Aug 17, 2014 at 4:25 PM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Sun, Aug 17, 2014 at 3:20 PM, Rafael Espindola<br>
<<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<br>
> Author: rafael<br>
> Date: Sun Aug 17 17:20:41 2014<br>
> New Revision: 215856<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=215856&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=215856&view=rev</a><br>
> Log:<br>
> Update for llvm api changes.<br>
><br>
> Modified:<br>
>     cfe/trunk/lib/ARCMigrate/ObjCMT.cpp<br>
>     cfe/trunk/lib/Basic/VirtualFileSystem.cpp<br>
><br>
> Modified: cfe/trunk/lib/ARCMigrate/ObjCMT.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ARCMigrate/ObjCMT.cpp?rev=215856&r1=215855&r2=215856&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ARCMigrate/ObjCMT.cpp?rev=215856&r1=215855&r2=215856&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/lib/ARCMigrate/ObjCMT.cpp (original)<br>
> +++ cfe/trunk/lib/ARCMigrate/ObjCMT.cpp Sun Aug 17 17:20:41 2014<br>
> @@ -1939,7 +1939,7 @@ public:<br>
>        return true;<br>
><br>
>      llvm::SourceMgr SM;<br>
> -    Stream YAMLStream(FileBufOrErr.get().release(), SM);<br>
> +    Stream YAMLStream(std::move(FileBufOrErr.get()), SM);<br>
<br>
</div>Thought: this is actually one place where I more strongly prefer using<br>
the pointer-like API of ErrorOr. Seeing "move(x.get())" makes me<br>
twitch and think "is that moving a raw pointer? some mistake where the<br>
user was trying to indicate transfer of ownership from a unique_ptr<br>
and clearly failing". Whereas move(*x) seems clear/sort of better.<br>
<br>
Not an ironclad argument - but just a thought I've been pondering.<br></blockquote><div><br></div><div>I agree. Generally I imagine this would apply for anything (that is not smart pointer-like) with a .get().</div><div>
<br></div><div>As a side note, given this .get() potential for confusion, is there a reason ErrorOr has both .get() and operator*?</div><div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="HOEnZb"><div class="h5"><br>
>      document_iterator I = YAMLStream.begin();<br>
>      if (I == YAMLStream.end())<br>
>        return true;<br>
><br>
> Modified: cfe/trunk/lib/Basic/VirtualFileSystem.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/VirtualFileSystem.cpp?rev=215856&r1=215855&r2=215856&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/VirtualFileSystem.cpp?rev=215856&r1=215855&r2=215856&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/lib/Basic/VirtualFileSystem.cpp (original)<br>
> +++ cfe/trunk/lib/Basic/VirtualFileSystem.cpp Sun Aug 17 17:20:41 2014<br>
> @@ -869,7 +869,7 @@ VFSFromYAML *VFSFromYAML::create(std::un<br>
>                                   IntrusiveRefCntPtr<FileSystem> ExternalFS) {<br>
><br>
>    SourceMgr SM;<br>
> -  yaml::Stream Stream(Buffer.release(), SM);<br>
> +  yaml::Stream Stream(std::move(Buffer), SM);<br>
><br>
>    SM.setDiagHandler(DiagHandler, DiagContext);<br>
>    yaml::document_iterator DI = Stream.begin();<br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div></div>