<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Mon, Jan 16, 2017 at 7:44 AM Rafael Avila de Espindola via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">George Rimar <<a href="mailto:grimar@accesssoftek.com" class="gmail_msg" target="_blank">grimar@accesssoftek.com</a>> writes:<br class="gmail_msg">
<br class="gmail_msg">
>>> +  Error E = zlib::compress(StringRef(UncompressedNameStrings),<br class="gmail_msg">
>>> +                           CompressedNameStrings, zlib::BestSizeCompression);<br class="gmail_msg">
>>> +  if (E)<br class="gmail_msg">
>>>      return make_error<InstrProfError>(instrprof_error::compress_failed);<br class="gmail_msg">
>><br class="gmail_msg">
>>This does't handle the error, does it? Do we have a test that covers it?<br class="gmail_msg">
><br class="gmail_msg">
> I think it does. What do you think is wrong here ?<br class="gmail_msg">
> I am not sure about if we have test, but checking<br class="gmail_msg">
> if (Error) { ... }<br class="gmail_msg">
> seems to be a common practice I believe. Examples from llvm:<br class="gmail_msg">
><br class="gmail_msg">
>  1)     Error E = CVTD.dump(Record, TDV);<br class="gmail_msg">
>       if (E) {<br class="gmail_msg">
>         logAllUnhandledErrors(std::move(E), errs(), "error: ");<br class="gmail_msg"></blockquote><div><br></div><div>^ this line handles the error. The InstrProfError example doesn't handle the 'E' and will assert-fail if an error is produced from zlib::compress because it would be unhandled.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
>         llvm_unreachable("produced malformed type record");<br class="gmail_msg">
>       }<br class="gmail_msg">
><br class="gmail_msg">
> 2)   Error E = debugMiscompilation();<br class="gmail_msg">
>       if (!E)<br class="gmail_msg">
>         return Error::success();<br class="gmail_msg">
><br class="gmail_msg">
> And I am pretty sure I debbugged that and other places when wrote it.<br class="gmail_msg">
<br class="gmail_msg">
If I remember correctly, an "if (E)" is sufficient when E doesn't<br class="gmail_msg">
actually contain an error, but if it contains an error E must be handled<br class="gmail_msg">
or propagated.<br class="gmail_msg"></blockquote><div><br></div><div>Yep.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br class="gmail_msg">
Cheers,<br class="gmail_msg">
Rafael<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
llvm-commits mailing list<br class="gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="gmail_msg">
</blockquote></div></div>