<div dir="ltr">Bleh, nice catch.<br><br>How about a nice comment of why you're doing it? Maybe a unittest? :)<div><br></div><div>-eric</div></div><br><div class="gmail_quote">On Fri Feb 13 2015 at 2:11:26 PM Reid Kleckner <<a href="mailto:reid@kleckner.net">reid@kleckner.net</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rnk<br>
Date: Fri Feb 13 16:05:50 2015<br>
New Revision: 229160<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=229160&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project?rev=229160&view=rev</a><br>
Log:<br>
Triple: Make setEnvironment not override the object format<br>
<br>
Discovered by Halide users who had C++ code like this:<br>
  Triple.setArch(Triple::x86);<br>
  Triple.setOS(Triple::Windows);<br>
  Triple.setObjectFormat(Triple:<u></u>:ELF);<br>
  Triple.setEnvironment(Triple::<u></u>MSVC);<br>
<br>
This would produce the stringified triple of x86-windows-msvc, instead<br>
of the x86-windows-msvc-elf string needed to run MCJIT.<br>
<br>
With this change, they retain the -elf suffix.<br>
<br>
Modified:<br>
    llvm/trunk/lib/Support/Triple.<u></u>cpp<br>
<br>
Modified: llvm/trunk/lib/Support/Triple.<u></u>cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Triple.cpp?rev=229160&r1=229159&r2=229160&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/<u></u>Support/Triple.cpp?rev=229160&<u></u>r1=229159&r2=229160&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Support/Triple.<u></u>cpp (original)<br>
+++ llvm/trunk/lib/Support/Triple.<u></u>cpp Fri Feb 13 16:05:50 2015<br>
@@ -816,7 +816,11 @@ void Triple::setOS(OSType Kind) {<br>
 }<br>
<br>
 void Triple::setEnvironment(<u></u>EnvironmentType Kind) {<br>
-  setEnvironmentName(<u></u>getEnvironmentTypeName(Kind));<br>
+  if (ObjectFormat == getDefaultFormat(*this))<br>
+    return setEnvironmentName(<u></u>getEnvironmentTypeName(Kind));<br>
+<br>
+  setEnvironmentName((<u></u>getEnvironmentTypeName(Kind) + Twine("-") +<br>
+                      getObjectFormatTypeName(<u></u>ObjectFormat)).str());<br>
 }<br>
<br>
 void Triple::setObjectFormat(<u></u>ObjectFormatType Kind) {<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></div>