Fix -Wsometimes-uninitialized in r199754

Also make the -m16 check x86-specific. Other archs may have a different take on
things.

llvm-svn: 199755
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 17e6bfd..ca3e50f 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1903,17 +1903,16 @@
   // Handle pseudo-target flags '-m64', '-m32' and '-m16'.
   if (Arg *A = Args.getLastArg(options::OPT_m64, options::OPT_m32,
                                options::OPT_m16)) {
-    llvm::Triple::ArchType AT;
+    llvm::Triple::ArchType AT = llvm::Triple::UnknownArch;
+
     if (A->getOption().matches(options::OPT_m64))
       AT = Target.get64BitArchVariant().getArch();
     else if (A->getOption().matches(options::OPT_m32))
       AT = Target.get32BitArchVariant().getArch();
-    else if (A->getOption().matches(options::OPT_m16)) {
-      AT = Target.get32BitArchVariant().getArch();
-      if (AT == llvm::Triple::x86)
-        Target.setEnvironment(llvm::Triple::CODE16);
-      else
-        AT = llvm::Triple::UnknownArch;
+    else if (A->getOption().matches(options::OPT_m16) &&
+             Target.get32BitArchVariant().getArch() == llvm::Triple::x86) {
+      AT = llvm::Triple::x86;
+      Target.setEnvironment(llvm::Triple::CODE16);
     }
 
     if (AT != llvm::Triple::UnknownArch)