<div dir="ltr">Just a heads up, I put the wrong differential revision in the commit message.  Oh well.  I submitted the other patch, not this one.<div><br></div><div>Can you rebase this patch on top of the triple / os patch?  It doesn't apply cleanly for me.</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Sep 20, 2016 at 1:53 PM Zachary Turner <<a href="mailto:zturner@google.com">zturner@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This revision was automatically updated to reflect the committed changes.<br class="gmail_msg">
Closed by commit rL282013: [PECOFF] Use the COFF subsystem field when determining the Triple. (authored by zturner).<br class="gmail_msg">
<br class="gmail_msg">
Changed prior to commit:<br class="gmail_msg">
  <a href="https://reviews.llvm.org/D24284?vs=71855&id=71984#toc" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D24284?vs=71855&id=71984#toc</a><br class="gmail_msg">
<br class="gmail_msg">
Repository:<br class="gmail_msg">
  rL LLVM<br class="gmail_msg">
<br class="gmail_msg">
<a href="https://reviews.llvm.org/D24284" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D24284</a><br class="gmail_msg">
<br class="gmail_msg">
Files:<br class="gmail_msg">
  lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp<br class="gmail_msg">
  lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h<br class="gmail_msg">
<br class="gmail_msg">
Index: lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h<br class="gmail_msg">
===================================================================<br class="gmail_msg">
--- lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h<br class="gmail_msg">
+++ lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h<br class="gmail_msg">
@@ -128,6 +128,8 @@<br class="gmail_msg">
<br class="gmail_msg">
   uint32_t GetPluginVersion() override;<br class="gmail_msg">
<br class="gmail_msg">
+  bool IsWindowsSubsystem();<br class="gmail_msg">
+<br class="gmail_msg">
 protected:<br class="gmail_msg">
   bool NeedsEndianSwap() const;<br class="gmail_msg">
<br class="gmail_msg">
Index: lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp<br class="gmail_msg">
===================================================================<br class="gmail_msg">
--- lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp<br class="gmail_msg">
+++ lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp<br class="gmail_msg">
@@ -944,6 +944,21 @@<br class="gmail_msg">
   }<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
+bool ObjectFilePECOFF::IsWindowsSubsystem() {<br class="gmail_msg">
+  switch (m_coff_header_opt.subsystem) {<br class="gmail_msg">
+  case llvm::COFF::IMAGE_SUBSYSTEM_NATIVE:<br class="gmail_msg">
+  case llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_GUI:<br class="gmail_msg">
+  case llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI:<br class="gmail_msg">
+  case llvm::COFF::IMAGE_SUBSYSTEM_NATIVE_WINDOWS:<br class="gmail_msg">
+  case llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CE_GUI:<br class="gmail_msg">
+  case llvm::COFF::IMAGE_SUBSYSTEM_XBOX:<br class="gmail_msg">
+  case llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION:<br class="gmail_msg">
+    return true;<br class="gmail_msg">
+  default:<br class="gmail_msg">
+    return false;<br class="gmail_msg">
+  }<br class="gmail_msg">
+}<br class="gmail_msg">
+<br class="gmail_msg">
 bool ObjectFilePECOFF::GetArchitecture(ArchSpec &arch) {<br class="gmail_msg">
   uint16_t machine = m_coff_header.machine;<br class="gmail_msg">
   switch (machine) {<br class="gmail_msg">
@@ -954,7 +969,9 @@<br class="gmail_msg">
   case llvm::COFF::IMAGE_FILE_MACHINE_ARM:<br class="gmail_msg">
   case llvm::COFF::IMAGE_FILE_MACHINE_ARMNT:<br class="gmail_msg">
   case llvm::COFF::IMAGE_FILE_MACHINE_THUMB:<br class="gmail_msg">
-    arch.SetArchitecture(eArchTypeCOFF, machine, LLDB_INVALID_CPUTYPE);<br class="gmail_msg">
+    arch.SetArchitecture(eArchTypeCOFF, machine, LLDB_INVALID_CPUTYPE,<br class="gmail_msg">
+                         IsWindowsSubsystem() ? llvm::Triple::Win32<br class="gmail_msg">
+                                              : llvm::Triple::UnknownOS);<br class="gmail_msg">
     return true;<br class="gmail_msg">
   default:<br class="gmail_msg">
     break;<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
</blockquote></div>