]> granicus.if.org Git - clang/commitdiff
Use ArgList::hasFlag to check if -miamcu/-mno-iamcu is passed. NFC.
authorAndrey Turetskiy <andrey.turetskiy@gmail.com>
Wed, 29 Jun 2016 10:57:17 +0000 (10:57 +0000)
committerAndrey Turetskiy <andrey.turetskiy@gmail.com>
Wed, 29 Jun 2016 10:57:17 +0000 (10:57 +0000)
Differential Revision: http://reviews.llvm.org/D21641

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274119 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Driver.cpp
lib/Driver/Tools.cpp

index d8c83742495c4f11800a2c6312d467e5194d1f7a..7235bd0efc8a978764f4a30914d99439b74b7a03 100644 (file)
@@ -280,9 +280,8 @@ DerivedArgList *Driver::TranslateInputArgs(const InputArgList &Args) const {
   }
 
   // Enforce -static if -miamcu is present.
-  if (Arg *Ar = Args.getLastArg(options::OPT_miamcu, options::OPT_mno_iamcu))
-    if (Ar->getOption().matches(options::OPT_miamcu))
-      DAL->AddFlagArg(0, Opts->getOption(options::OPT_static));
+  if (Args.hasFlag(options::OPT_miamcu, options::OPT_mno_iamcu, false))
+    DAL->AddFlagArg(0, Opts->getOption(options::OPT_static));
 
 // Add a default value of -mlinker-version=, if one was given and the user
 // didn't specify one.
@@ -376,24 +375,22 @@ static llvm::Triple computeTargetTriple(const Driver &D,
   }
 
   // Handle -miamcu flag.
-  if (Arg *Ar = Args.getLastArg(options::OPT_miamcu, options::OPT_mno_iamcu)) {
-    if (Ar->getOption().matches(options::OPT_miamcu)) {
-      if (Target.get32BitArchVariant().getArch() != llvm::Triple::x86)
-        D.Diag(diag::err_drv_unsupported_opt_for_target) << "-miamcu"
-                                                         << Target.str();
-
-      if (A && !A->getOption().matches(options::OPT_m32))
-        D.Diag(diag::err_drv_argument_not_allowed_with)
-            << "-miamcu" << A->getBaseArg().getAsString(Args);
-
-      Target.setArch(llvm::Triple::x86);
-      Target.setArchName("i586");
-      Target.setEnvironment(llvm::Triple::UnknownEnvironment);
-      Target.setEnvironmentName("");
-      Target.setOS(llvm::Triple::ELFIAMCU);
-      Target.setVendor(llvm::Triple::UnknownVendor);
-      Target.setVendorName("intel");
-    }
+  if (Args.hasFlag(options::OPT_miamcu, options::OPT_mno_iamcu, false)) {
+    if (Target.get32BitArchVariant().getArch() != llvm::Triple::x86)
+      D.Diag(diag::err_drv_unsupported_opt_for_target) << "-miamcu"
+                                                       << Target.str();
+
+    if (A && !A->getOption().matches(options::OPT_m32))
+      D.Diag(diag::err_drv_argument_not_allowed_with)
+          << "-miamcu" << A->getBaseArg().getAsString(Args);
+
+    Target.setArch(llvm::Triple::x86);
+    Target.setArchName("i586");
+    Target.setEnvironment(llvm::Triple::UnknownEnvironment);
+    Target.setEnvironmentName("");
+    Target.setOS(llvm::Triple::ELFIAMCU);
+    Target.setVendor(llvm::Triple::UnknownVendor);
+    Target.setVendorName("intel");
   }
 
   return Target;
index 8baf5d43d456208f68771861e264c7bf17022e8d..086ccd83c82f208dcbc8c27dabff1b212e31e833 100644 (file)
@@ -2247,12 +2247,10 @@ void Clang::AddX86TargetArgs(const ArgList &Args,
   }
 
   // Set flags to support MCU ABI.
-  if (Arg *A = Args.getLastArg(options::OPT_miamcu, options::OPT_mno_iamcu)) {
-    if (A->getOption().matches(options::OPT_miamcu)) {
-      CmdArgs.push_back("-mfloat-abi");
-      CmdArgs.push_back("soft");
-      CmdArgs.push_back("-mstack-alignment=4");
-    }
+  if (Args.hasFlag(options::OPT_miamcu, options::OPT_mno_iamcu, false)) {
+    CmdArgs.push_back("-mfloat-abi");
+    CmdArgs.push_back("soft");
+    CmdArgs.push_back("-mstack-alignment=4");
   }
 }