Fix a cross-build issue.  The asmsyntax shouldn't be affected by the build
host, it should be affected by the target.  Allow the command line option to
override in either case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30164 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86Subtarget.cpp b/lib/Target/X86/X86Subtarget.cpp
index 5107f91..e3776d8 100644
--- a/lib/Target/X86/X86Subtarget.cpp
+++ b/lib/Target/X86/X86Subtarget.cpp
@@ -18,18 +18,12 @@
 using namespace llvm;
 
 cl::opt<X86Subtarget::AsmWriterFlavorTy>
-AsmWriterFlavor("x86-asm-syntax",
+AsmWriterFlavor("x86-asm-syntax", cl::init(X86Subtarget::unset),
   cl::desc("Choose style of code to emit from X86 backend:"),
   cl::values(
     clEnumValN(X86Subtarget::att,   "att",   "  Emit AT&T-style assembly"),
     clEnumValN(X86Subtarget::intel, "intel", "  Emit Intel-style assembly"),
-    clEnumValEnd),
-#ifdef _MSC_VER
-  cl::init(X86Subtarget::intel)
-#else
-  cl::init(X86Subtarget::att)
-#endif
-                );
+    clEnumValEnd));
 
 /// GetCpuIDAndInfo - Execute the specified cpuid and return the 4 values in the
 /// specified arguments.  If we can't run cpuid on the host, return true.
@@ -199,6 +193,16 @@
 #endif
   }
 
+  // If the asm syntax hasn't been overridden on the command line, use whatever
+  // the target wants.
+  if (AsmFlavor == X86Subtarget::unset) {
+    if (TargetType == isWindows) {
+      AsmFlavor = X86Subtarget::intel;
+    } else {
+      AsmFlavor = X86Subtarget::att;
+    }
+  }
+
   if (TargetType == isDarwin || TargetType == isCygwin)
     stackAlignment = 16;
 }