Generally we prefer not to use unreachable when an assert is intended. The common fix for "but the variable is only used in debug builds is to add a "(void)var;" on the line before/after/near the assert.<br>
<br><div>On Thu Dec 19 2013 at 2:34:38 PM, Nick Kledzik <<a href="mailto:kledzik@apple.com">kledzik@apple.com</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Author: kledzik<br>
Date: Thu Dec 19 16:29:07 2013<br>
New Revision: 197732<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=197732&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project?rev=197732&view=rev</a><br>
Log:<br>
[lld] fix unused variable warning in non-debug builds<br>
<br>
Modified:<br>
    lld/trunk/lib/Passes/<u></u>RoundTripNativePass.cpp<br>
    lld/trunk/lib/Passes/<u></u>RoundTripYAMLPass.cpp<br>
<br>
Modified: lld/trunk/lib/Passes/<u></u>RoundTripNativePass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/RoundTripNativePass.cpp?rev=197732&r1=197731&r2=197732&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/lld/trunk/lib/Passes/<u></u>RoundTripNativePass.cpp?rev=<u></u>197732&r1=197731&r2=197732&<u></u>view=diff</a><br>

==============================<u></u>==============================<u></u>==================<br>
--- lld/trunk/lib/Passes/<u></u>RoundTripNativePass.cpp (original)<br>
+++ lld/trunk/lib/Passes/<u></u>RoundTripNativePass.cpp Thu Dec 19 16:29:07 2013<br>
@@ -41,8 +41,11 @@ void RoundTripNativePass::perform(<u></u>std::u<br>
<br>
   std::unique_ptr<MemoryBuffer> mb(buff.take());<br>
   error_code ec = _context.registry().parseFile(<u></u>mb, _nativeFile);<br>
-  assert(!ec && "native reader not registered");<br>
-  File *objFile =  _nativeFile[0].get();<br>
+  if (ec) {<br>
+    // Note: we need a way for Passes to report errors.<br>
+    llvm_unreachable("native reader not registered or read error");<br>
+  }<br>
+  File *objFile = _nativeFile[0].get();<br>
   mergedFile.reset(new FileToMutable(_context, *objFile));<br>
<br>
   llvm::sys::fs::remove(<u></u>tmpNativeFile.str());<br>
<br>
Modified: lld/trunk/lib/Passes/<u></u>RoundTripYAMLPass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/RoundTripYAMLPass.cpp?rev=197732&r1=197731&r2=197732&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/lld/trunk/lib/Passes/<u></u>RoundTripYAMLPass.cpp?rev=<u></u>197732&r1=197731&r2=197732&<u></u>view=diff</a><br>

==============================<u></u>==============================<u></u>==================<br>
--- lld/trunk/lib/Passes/<u></u>RoundTripYAMLPass.cpp (original)<br>
+++ lld/trunk/lib/Passes/<u></u>RoundTripYAMLPass.cpp Thu Dec 19 16:29:07 2013<br>
@@ -46,11 +46,12 @@ void RoundTripYAMLPass::perform(<u></u>std::uni<br>
   if (buff->getBufferSize() < MAX_YAML_FILE_SIZE) {<br>
     std::unique_ptr<MemoryBuffer> mb(buff.take());<br>
     error_code ec = _context.registry().parseFile(<u></u>mb, _yamlFile);<br>
-    assert(!ec && "yaml reader not registered");<br>
-    File *objFile =  _yamlFile[0].get();<br>
-    const File *obj = dyn_cast<const File>(objFile);<br>
-    assert(obj && "yaml generated file is not an relocatable file");<br>
-    mergedFile.reset(new FileToMutable(_context, *obj));<br>
+    if (ec) {<br>
+      // Note: we need a way for Passes to report errors.<br>
+      llvm_unreachable("yaml reader not registered or read error");<br>
+    }<br>
+    File *objFile = _yamlFile[0].get();<br>
+    mergedFile.reset(new FileToMutable(_context, *objFile));<br>
   }<br>
<br>
   llvm::sys::fs::remove(<u></u>tmpYAMLFile.str());<br>
<br>
<br>
______________________________<u></u>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvm-commits</a><br>
</blockquote>