<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, May 29, 2015 at 1:49 PM, Peter Collingbourne <span dir="ltr"><<a href="mailto:peter@pcc.me.uk" target="_blank">peter@pcc.me.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">================<br>
Comment at: COFF/SymbolTable.cpp:174-184<br>
@@ -173,2 +173,13 @@<br>
<br>
+llvm::COFF::MachineTypes SymbolTable::getInferredMachineType() {<br>
+  for (std::unique_ptr<ObjectFile> &File : ObjectFiles) {<br>
+    // Try to infer machine type from the magic byte of the object file.<br>
+    auto MT =<br>
+        static_cast<llvm::COFF::MachineTypes>(File->getCOFFObj()->getMachine());<br>
+    if (MT != llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN)<br>
+      return MT;<br>
+  }<br>
+  return llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN;<br>
+}<br>
+<br>
 } // namespace coff<br>
----------------<br>
</span><span class="">ruiu wrote:<br>
> I'd make this a non-member function in Writer.cpp which takes vector<unique_ptr<ObjectFile>>& as a parameter, as this function is not that related to symbol resolution. It feels that it belongs Writer. Maybe you need to expose ObjectFiles, but that's fine.<br>
><br>
> And in the Writer, you can return Config->MachineType as a default value instead of UNKNOWN.<br>
</span>`Config->MachineType` overrides the detected value, doesn't it? That's what the existing logic seems to implement.</blockquote><div><br></div><div>Ah, yes, command line takes precedence over the detected value. Actually it's an error if they conflict.</div></div></div></div>