Browse Source

[C++11] Use 'nullptr'. Driver edition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209069 91177308-0d34-0410-b5e6-96231b3b80d8
Craig Topper 11 years ago
parent
commit
03208adb78

+ 3 - 3
lib/Driver/Compilation.cpp

@@ -27,7 +27,7 @@ using namespace llvm::opt;
 Compilation::Compilation(const Driver &D, const ToolChain &_DefaultToolChain,
 Compilation::Compilation(const Driver &D, const ToolChain &_DefaultToolChain,
                          InputArgList *_Args, DerivedArgList *_TranslatedArgs)
                          InputArgList *_Args, DerivedArgList *_TranslatedArgs)
   : TheDriver(D), DefaultToolChain(_DefaultToolChain), Args(_Args),
   : TheDriver(D), DefaultToolChain(_DefaultToolChain), Args(_Args),
-    TranslatedArgs(_TranslatedArgs), Redirects(0) {
+    TranslatedArgs(_TranslatedArgs), Redirects(nullptr) {
 }
 }
 
 
 Compilation::~Compilation() {
 Compilation::~Compilation() {
@@ -199,7 +199,7 @@ void Compilation::ExecuteJob(const Job &J,
   if (const Command *C = dyn_cast<Command>(&J)) {
   if (const Command *C = dyn_cast<Command>(&J)) {
     if (!InputsOk(*C, FailingCommands))
     if (!InputsOk(*C, FailingCommands))
       return;
       return;
-    const Command *FailingCommand = 0;
+    const Command *FailingCommand = nullptr;
     if (int Res = ExecuteCommand(*C, FailingCommand))
     if (int Res = ExecuteCommand(*C, FailingCommand))
       FailingCommands.push_back(std::make_pair(Res, FailingCommand));
       FailingCommands.push_back(std::make_pair(Res, FailingCommand));
   } else {
   } else {
@@ -232,7 +232,7 @@ void Compilation::initCompilationForDiagnostics() {
 
 
   // Redirect stdout/stderr to /dev/null.
   // Redirect stdout/stderr to /dev/null.
   Redirects = new const StringRef*[3]();
   Redirects = new const StringRef*[3]();
-  Redirects[0] = 0;
+  Redirects[0] = nullptr;
   Redirects[1] = new const StringRef();
   Redirects[1] = new const StringRef();
   Redirects[2] = new const StringRef();
   Redirects[2] = new const StringRef();
 }
 }

+ 11 - 10
lib/Driver/Driver.cpp

@@ -53,8 +53,8 @@ Driver::Driver(StringRef ClangExecutable,
     UseStdLib(true), DefaultTargetTriple(DefaultTargetTriple),
     UseStdLib(true), DefaultTargetTriple(DefaultTargetTriple),
     DefaultImageName("a.out"),
     DefaultImageName("a.out"),
     DriverTitle("clang LLVM compiler"),
     DriverTitle("clang LLVM compiler"),
-    CCPrintOptionsFilename(0), CCPrintHeadersFilename(0),
-    CCLogDiagnosticsFilename(0),
+    CCPrintOptionsFilename(nullptr), CCPrintHeadersFilename(nullptr),
+    CCLogDiagnosticsFilename(nullptr),
     CCCPrintBindings(false),
     CCCPrintBindings(false),
     CCPrintHeaders(false), CCLogDiagnostics(false),
     CCPrintHeaders(false), CCLogDiagnostics(false),
     CCGenDiagnostics(false), CCCGenericGCCName(""), CheckInputsExist(true),
     CCGenDiagnostics(false), CCCGenericGCCName(""), CheckInputsExist(true),
@@ -152,7 +152,7 @@ InputArgList *Driver::ParseArgStrings(ArrayRef<const char *> ArgList) {
 // option we used to determine the final phase.
 // option we used to determine the final phase.
 phases::ID Driver::getFinalPhase(const DerivedArgList &DAL, Arg **FinalPhaseArg)
 phases::ID Driver::getFinalPhase(const DerivedArgList &DAL, Arg **FinalPhaseArg)
 const {
 const {
-  Arg *PhaseArg = 0;
+  Arg *PhaseArg = nullptr;
   phases::ID FinalPhase;
   phases::ID FinalPhase;
 
 
   // -{E,M,MM} and /P only run the preprocessor.
   // -{E,M,MM} and /P only run the preprocessor.
@@ -419,7 +419,8 @@ void Driver::generateCompilationDiagnostics(Compilation &C,
   // Suppress driver output and emit preprocessor output to temp file.
   // Suppress driver output and emit preprocessor output to temp file.
   Mode = CPPMode;
   Mode = CPPMode;
   CCGenDiagnostics = true;
   CCGenDiagnostics = true;
-  C.getArgs().AddFlagArg(0, Opts->getOption(options::OPT_frewrite_includes));
+  C.getArgs().AddFlagArg(nullptr,
+                         Opts->getOption(options::OPT_frewrite_includes));
 
 
   // Save the original job command(s).
   // Save the original job command(s).
   std::string Cmd;
   std::string Cmd;
@@ -962,7 +963,7 @@ void Driver::BuildInputs(const ToolChain &TC, DerivedArgList &Args,
   // argument used to set the type; we only want to claim the type when we
   // argument used to set the type; we only want to claim the type when we
   // actually use it, so we warn about unused -x arguments.
   // actually use it, so we warn about unused -x arguments.
   types::ID InputType = types::TY_Nothing;
   types::ID InputType = types::TY_Nothing;
-  Arg *InputTypeArg = 0;
+  Arg *InputTypeArg = nullptr;
 
 
   // The last /TC or /TP option sets the input type to C or C++ globally.
   // The last /TC or /TP option sets the input type to C or C++ globally.
   if (Arg *TCTP = Args.getLastArg(options::OPT__SLASH_TC,
   if (Arg *TCTP = Args.getLastArg(options::OPT__SLASH_TC,
@@ -1341,7 +1342,7 @@ void Driver::BuildJobs(Compilation &C) const {
 
 
     if (NumOutputs > 1) {
     if (NumOutputs > 1) {
       Diag(clang::diag::err_drv_output_argument_with_multiple_files);
       Diag(clang::diag::err_drv_output_argument_with_multiple_files);
-      FinalOutput = 0;
+      FinalOutput = nullptr;
     }
     }
   }
   }
 
 
@@ -1366,7 +1367,7 @@ void Driver::BuildJobs(Compilation &C) const {
     //
     //
     // FIXME: This is a hack; find a cleaner way to integrate this into the
     // FIXME: This is a hack; find a cleaner way to integrate this into the
     // process.
     // process.
-    const char *LinkingOutput = 0;
+    const char *LinkingOutput = nullptr;
     if (isa<LipoJobAction>(A)) {
     if (isa<LipoJobAction>(A)) {
       if (FinalOutput)
       if (FinalOutput)
         LinkingOutput = FinalOutput->getValue();
         LinkingOutput = FinalOutput->getValue();
@@ -1376,7 +1377,7 @@ void Driver::BuildJobs(Compilation &C) const {
 
 
     InputInfo II;
     InputInfo II;
     BuildJobsForAction(C, A, &C.getDefaultToolChain(),
     BuildJobsForAction(C, A, &C.getDefaultToolChain(),
-                       /*BoundArch*/0,
+                       /*BoundArch*/nullptr,
                        /*AtTopLevel*/ true,
                        /*AtTopLevel*/ true,
                        /*MultipleArchs*/ ArchNames.size() > 1,
                        /*MultipleArchs*/ ArchNames.size() > 1,
                        /*LinkingOutput*/ LinkingOutput,
                        /*LinkingOutput*/ LinkingOutput,
@@ -1433,7 +1434,7 @@ void Driver::BuildJobs(Compilation &C) const {
 static const Tool *SelectToolForJob(Compilation &C, const ToolChain *TC,
 static const Tool *SelectToolForJob(Compilation &C, const ToolChain *TC,
                                     const JobAction *JA,
                                     const JobAction *JA,
                                     const ActionList *&Inputs) {
                                     const ActionList *&Inputs) {
-  const Tool *ToolForJob = 0;
+  const Tool *ToolForJob = nullptr;
 
 
   // See if we should look for a compiler with an integrated assembler. We match
   // See if we should look for a compiler with an integrated assembler. We match
   // bottom up, so what we are actually looking for is an assembler job with a
   // bottom up, so what we are actually looking for is an assembler job with a
@@ -1449,7 +1450,7 @@ static const Tool *SelectToolForJob(Compilation &C, const ToolChain *TC,
     const Tool *Compiler =
     const Tool *Compiler =
       TC->SelectTool(cast<JobAction>(**Inputs->begin()));
       TC->SelectTool(cast<JobAction>(**Inputs->begin()));
     if (!Compiler)
     if (!Compiler)
-      return NULL;
+      return nullptr;
     if (Compiler->hasIntegratedAssembler()) {
     if (Compiler->hasIntegratedAssembler()) {
       Inputs = &(*Inputs)[0]->getInputs();
       Inputs = &(*Inputs)[0]->getInputs();
       ToolForJob = Compiler;
       ToolForJob = Compiler;

+ 2 - 2
lib/Driver/Job.cpp

@@ -124,9 +124,9 @@ int Command::Execute(const StringRef **Redirects, std::string *ErrMsg,
   Argv.push_back(Executable);
   Argv.push_back(Executable);
   for (size_t i = 0, e = Arguments.size(); i != e; ++i)
   for (size_t i = 0, e = Arguments.size(); i != e; ++i)
     Argv.push_back(Arguments[i]);
     Argv.push_back(Arguments[i]);
-  Argv.push_back(0);
+  Argv.push_back(nullptr);
 
 
-  return llvm::sys::ExecuteAndWait(Executable, Argv.data(), /*env*/ 0,
+  return llvm::sys::ExecuteAndWait(Executable, Argv.data(), /*env*/ nullptr,
                                    Redirects, /*secondsToWait*/ 0,
                                    Redirects, /*secondsToWait*/ 0,
                                    /*memoryLimit*/ 0, ErrMsg, ExecutionFailed);
                                    /*memoryLimit*/ 0, ErrMsg, ExecutionFailed);
 }
 }

+ 1 - 1
lib/Driver/SanitizerArgs.cpp

@@ -331,7 +331,7 @@ std::string SanitizerArgs::describeSanitizeArg(const llvm::opt::ArgList &Args,
 
 
 bool SanitizerArgs::getDefaultBlacklistForKind(const Driver &D, unsigned Kind,
 bool SanitizerArgs::getDefaultBlacklistForKind(const Driver &D, unsigned Kind,
                                                std::string &BLPath) {
                                                std::string &BLPath) {
-  const char *BlacklistFile = 0;
+  const char *BlacklistFile = nullptr;
   if (Kind & NeedsAsanRt)
   if (Kind & NeedsAsanRt)
     BlacklistFile = "asan_blacklist.txt";
     BlacklistFile = "asan_blacklist.txt";
   else if (Kind & NeedsMsanRt)
   else if (Kind & NeedsMsanRt)

+ 45 - 43
lib/Driver/ToolChains.cpp

@@ -118,7 +118,7 @@ static const char *GetArmArchForMArch(StringRef Value) {
     .Cases("armv7k", "armv7-k", "armv7k")
     .Cases("armv7k", "armv7-k", "armv7k")
     .Cases("armv7m", "armv7-m", "armv7m")
     .Cases("armv7m", "armv7-m", "armv7m")
     .Cases("armv7s", "armv7-s", "armv7s")
     .Cases("armv7s", "armv7-s", "armv7s")
-    .Default(0);
+    .Default(nullptr);
 }
 }
 
 
 static const char *GetArmArchForMCpu(StringRef Value) {
 static const char *GetArmArchForMCpu(StringRef Value) {
@@ -135,7 +135,7 @@ static const char *GetArmArchForMCpu(StringRef Value) {
     .Case("cortex-m3", "armv7m")
     .Case("cortex-m3", "armv7m")
     .Case("cortex-m4", "armv7em")
     .Case("cortex-m4", "armv7em")
     .Case("swift", "armv7s")
     .Case("swift", "armv7s")
-    .Default(0);
+    .Default(nullptr);
 }
 }
 
 
 static bool isSoftFloatABI(const ArgList &Args) {
 static bool isSoftFloatABI(const ArgList &Args) {
@@ -449,7 +449,7 @@ void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
       if (llvm::sys::path::is_absolute(env) && llvm::sys::fs::exists(env) &&
       if (llvm::sys::path::is_absolute(env) && llvm::sys::fs::exists(env) &&
           StringRef(env) != "/") {
           StringRef(env) != "/") {
         Args.append(Args.MakeSeparateArg(
         Args.append(Args.MakeSeparateArg(
-                      0, Opts.getOption(options::OPT_isysroot), env));
+                      nullptr, Opts.getOption(options::OPT_isysroot), env));
       }
       }
     }
     }
   }
   }
@@ -463,12 +463,12 @@ void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
     getDriver().Diag(diag::err_drv_argument_not_allowed_with)
     getDriver().Diag(diag::err_drv_argument_not_allowed_with)
           << OSXVersion->getAsString(Args)
           << OSXVersion->getAsString(Args)
           << (iOSVersion ? iOSVersion : iOSSimVersion)->getAsString(Args);
           << (iOSVersion ? iOSVersion : iOSSimVersion)->getAsString(Args);
-    iOSVersion = iOSSimVersion = 0;
+    iOSVersion = iOSSimVersion = nullptr;
   } else if (iOSVersion && iOSSimVersion) {
   } else if (iOSVersion && iOSSimVersion) {
     getDriver().Diag(diag::err_drv_argument_not_allowed_with)
     getDriver().Diag(diag::err_drv_argument_not_allowed_with)
           << iOSVersion->getAsString(Args)
           << iOSVersion->getAsString(Args)
           << iOSSimVersion->getAsString(Args);
           << iOSSimVersion->getAsString(Args);
-    iOSSimVersion = 0;
+    iOSSimVersion = nullptr;
   } else if (!OSXVersion && !iOSVersion && !iOSSimVersion) {
   } else if (!OSXVersion && !iOSVersion && !iOSSimVersion) {
     // If no deployment target was specified on the command line, check for
     // If no deployment target was specified on the command line, check for
     // environment defines.
     // environment defines.
@@ -528,22 +528,22 @@ void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
 
 
     if (!OSXTarget.empty()) {
     if (!OSXTarget.empty()) {
       const Option O = Opts.getOption(options::OPT_mmacosx_version_min_EQ);
       const Option O = Opts.getOption(options::OPT_mmacosx_version_min_EQ);
-      OSXVersion = Args.MakeJoinedArg(0, O, OSXTarget);
+      OSXVersion = Args.MakeJoinedArg(nullptr, O, OSXTarget);
       Args.append(OSXVersion);
       Args.append(OSXVersion);
     } else if (!iOSTarget.empty()) {
     } else if (!iOSTarget.empty()) {
       const Option O = Opts.getOption(options::OPT_miphoneos_version_min_EQ);
       const Option O = Opts.getOption(options::OPT_miphoneos_version_min_EQ);
-      iOSVersion = Args.MakeJoinedArg(0, O, iOSTarget);
+      iOSVersion = Args.MakeJoinedArg(nullptr, O, iOSTarget);
       Args.append(iOSVersion);
       Args.append(iOSVersion);
     } else if (!iOSSimTarget.empty()) {
     } else if (!iOSSimTarget.empty()) {
       const Option O = Opts.getOption(
       const Option O = Opts.getOption(
         options::OPT_mios_simulator_version_min_EQ);
         options::OPT_mios_simulator_version_min_EQ);
-      iOSSimVersion = Args.MakeJoinedArg(0, O, iOSSimTarget);
+      iOSSimVersion = Args.MakeJoinedArg(nullptr, O, iOSSimTarget);
       Args.append(iOSSimVersion);
       Args.append(iOSSimVersion);
     } else if (MachOArchName != "armv6m" && MachOArchName != "armv7m" &&
     } else if (MachOArchName != "armv6m" && MachOArchName != "armv7m" &&
                MachOArchName != "armv7em") {
                MachOArchName != "armv7em") {
       // Otherwise, assume we are targeting OS X.
       // Otherwise, assume we are targeting OS X.
       const Option O = Opts.getOption(options::OPT_mmacosx_version_min_EQ);
       const Option O = Opts.getOption(options::OPT_mmacosx_version_min_EQ);
-      OSXVersion = Args.MakeJoinedArg(0, O, MacosxVersionMin);
+      OSXVersion = Args.MakeJoinedArg(nullptr, O, MacosxVersionMin);
       Args.append(OSXVersion);
       Args.append(OSXVersion);
     }
     }
   }
   }
@@ -800,7 +800,8 @@ DerivedArgList *MachO::TranslateArgs(const DerivedArgList &Args,
   if (getTriple().getArch() == llvm::Triple::x86 ||
   if (getTriple().getArch() == llvm::Triple::x86 ||
       getTriple().getArch() == llvm::Triple::x86_64)
       getTriple().getArch() == llvm::Triple::x86_64)
     if (!Args.hasArgNoClaim(options::OPT_mtune_EQ))
     if (!Args.hasArgNoClaim(options::OPT_mtune_EQ))
-      DAL->AddJoinedArg(0, Opts.getOption(options::OPT_mtune_EQ), "core2");
+      DAL->AddJoinedArg(nullptr, Opts.getOption(options::OPT_mtune_EQ),
+                        "core2");
 
 
   // Add the arch options based on the particular spelling of -arch, to match
   // Add the arch options based on the particular spelling of -arch, to match
   // how the driver driver works.
   // how the driver driver works.
@@ -814,76 +815,76 @@ DerivedArgList *MachO::TranslateArgs(const DerivedArgList &Args,
     if (Name == "ppc")
     if (Name == "ppc")
       ;
       ;
     else if (Name == "ppc601")
     else if (Name == "ppc601")
-      DAL->AddJoinedArg(0, MCpu, "601");
+      DAL->AddJoinedArg(nullptr, MCpu, "601");
     else if (Name == "ppc603")
     else if (Name == "ppc603")
-      DAL->AddJoinedArg(0, MCpu, "603");
+      DAL->AddJoinedArg(nullptr, MCpu, "603");
     else if (Name == "ppc604")
     else if (Name == "ppc604")
-      DAL->AddJoinedArg(0, MCpu, "604");
+      DAL->AddJoinedArg(nullptr, MCpu, "604");
     else if (Name == "ppc604e")
     else if (Name == "ppc604e")
-      DAL->AddJoinedArg(0, MCpu, "604e");
+      DAL->AddJoinedArg(nullptr, MCpu, "604e");
     else if (Name == "ppc750")
     else if (Name == "ppc750")
-      DAL->AddJoinedArg(0, MCpu, "750");
+      DAL->AddJoinedArg(nullptr, MCpu, "750");
     else if (Name == "ppc7400")
     else if (Name == "ppc7400")
-      DAL->AddJoinedArg(0, MCpu, "7400");
+      DAL->AddJoinedArg(nullptr, MCpu, "7400");
     else if (Name == "ppc7450")
     else if (Name == "ppc7450")
-      DAL->AddJoinedArg(0, MCpu, "7450");
+      DAL->AddJoinedArg(nullptr, MCpu, "7450");
     else if (Name == "ppc970")
     else if (Name == "ppc970")
-      DAL->AddJoinedArg(0, MCpu, "970");
+      DAL->AddJoinedArg(nullptr, MCpu, "970");
 
 
     else if (Name == "ppc64" || Name == "ppc64le")
     else if (Name == "ppc64" || Name == "ppc64le")
-      DAL->AddFlagArg(0, Opts.getOption(options::OPT_m64));
+      DAL->AddFlagArg(nullptr, Opts.getOption(options::OPT_m64));
 
 
     else if (Name == "i386")
     else if (Name == "i386")
       ;
       ;
     else if (Name == "i486")
     else if (Name == "i486")
-      DAL->AddJoinedArg(0, MArch, "i486");
+      DAL->AddJoinedArg(nullptr, MArch, "i486");
     else if (Name == "i586")
     else if (Name == "i586")
-      DAL->AddJoinedArg(0, MArch, "i586");
+      DAL->AddJoinedArg(nullptr, MArch, "i586");
     else if (Name == "i686")
     else if (Name == "i686")
-      DAL->AddJoinedArg(0, MArch, "i686");
+      DAL->AddJoinedArg(nullptr, MArch, "i686");
     else if (Name == "pentium")
     else if (Name == "pentium")
-      DAL->AddJoinedArg(0, MArch, "pentium");
+      DAL->AddJoinedArg(nullptr, MArch, "pentium");
     else if (Name == "pentium2")
     else if (Name == "pentium2")
-      DAL->AddJoinedArg(0, MArch, "pentium2");
+      DAL->AddJoinedArg(nullptr, MArch, "pentium2");
     else if (Name == "pentpro")
     else if (Name == "pentpro")
-      DAL->AddJoinedArg(0, MArch, "pentiumpro");
+      DAL->AddJoinedArg(nullptr, MArch, "pentiumpro");
     else if (Name == "pentIIm3")
     else if (Name == "pentIIm3")
-      DAL->AddJoinedArg(0, MArch, "pentium2");
+      DAL->AddJoinedArg(nullptr, MArch, "pentium2");
 
 
     else if (Name == "x86_64")
     else if (Name == "x86_64")
-      DAL->AddFlagArg(0, Opts.getOption(options::OPT_m64));
+      DAL->AddFlagArg(nullptr, Opts.getOption(options::OPT_m64));
     else if (Name == "x86_64h") {
     else if (Name == "x86_64h") {
-      DAL->AddFlagArg(0, Opts.getOption(options::OPT_m64));
-      DAL->AddJoinedArg(0, MArch, "x86_64h");
+      DAL->AddFlagArg(nullptr, Opts.getOption(options::OPT_m64));
+      DAL->AddJoinedArg(nullptr, MArch, "x86_64h");
     }
     }
 
 
     else if (Name == "arm")
     else if (Name == "arm")
-      DAL->AddJoinedArg(0, MArch, "armv4t");
+      DAL->AddJoinedArg(nullptr, MArch, "armv4t");
     else if (Name == "armv4t")
     else if (Name == "armv4t")
-      DAL->AddJoinedArg(0, MArch, "armv4t");
+      DAL->AddJoinedArg(nullptr, MArch, "armv4t");
     else if (Name == "armv5")
     else if (Name == "armv5")
-      DAL->AddJoinedArg(0, MArch, "armv5tej");
+      DAL->AddJoinedArg(nullptr, MArch, "armv5tej");
     else if (Name == "xscale")
     else if (Name == "xscale")
-      DAL->AddJoinedArg(0, MArch, "xscale");
+      DAL->AddJoinedArg(nullptr, MArch, "xscale");
     else if (Name == "armv6")
     else if (Name == "armv6")
-      DAL->AddJoinedArg(0, MArch, "armv6k");
+      DAL->AddJoinedArg(nullptr, MArch, "armv6k");
     else if (Name == "armv6m")
     else if (Name == "armv6m")
-      DAL->AddJoinedArg(0, MArch, "armv6m");
+      DAL->AddJoinedArg(nullptr, MArch, "armv6m");
     else if (Name == "armv7")
     else if (Name == "armv7")
-      DAL->AddJoinedArg(0, MArch, "armv7a");
+      DAL->AddJoinedArg(nullptr, MArch, "armv7a");
     else if (Name == "armv7em")
     else if (Name == "armv7em")
-      DAL->AddJoinedArg(0, MArch, "armv7em");
+      DAL->AddJoinedArg(nullptr, MArch, "armv7em");
     else if (Name == "armv7k")
     else if (Name == "armv7k")
-      DAL->AddJoinedArg(0, MArch, "armv7k");
+      DAL->AddJoinedArg(nullptr, MArch, "armv7k");
     else if (Name == "armv7m")
     else if (Name == "armv7m")
-      DAL->AddJoinedArg(0, MArch, "armv7m");
+      DAL->AddJoinedArg(nullptr, MArch, "armv7m");
     else if (Name == "armv7s")
     else if (Name == "armv7s")
-      DAL->AddJoinedArg(0, MArch, "armv7s");
+      DAL->AddJoinedArg(nullptr, MArch, "armv7s");
 
 
     else if (Name == "arm64")
     else if (Name == "arm64")
-      DAL->AddJoinedArg(0, MArch, "arm64");
+      DAL->AddJoinedArg(nullptr, MArch, "arm64");
     else if (Name == "armv8")
     else if (Name == "armv8")
-      DAL->AddJoinedArg(0, MArch, "arm64");
+      DAL->AddJoinedArg(nullptr, MArch, "arm64");
   }
   }
 
 
   return DAL;
   return DAL;
@@ -944,7 +945,8 @@ DerivedArgList *Darwin::TranslateArgs(const DerivedArgList &Args,
   if (((isTargetMacOS() && !isMacosxVersionLT(10, 9)) ||
   if (((isTargetMacOS() && !isMacosxVersionLT(10, 9)) ||
        (isTargetIOSBased() && !isIPhoneOSVersionLT(7, 0))) &&
        (isTargetIOSBased() && !isIPhoneOSVersionLT(7, 0))) &&
       !Args.getLastArg(options::OPT_stdlib_EQ))
       !Args.getLastArg(options::OPT_stdlib_EQ))
-    DAL->AddJoinedArg(0, Opts.getOption(options::OPT_stdlib_EQ), "libc++");
+    DAL->AddJoinedArg(nullptr, Opts.getOption(options::OPT_stdlib_EQ),
+                      "libc++");
 
 
   // Validate the C++ standard library choice.
   // Validate the C++ standard library choice.
   CXXStdlibType Type = GetCXXStdlibType(*DAL);
   CXXStdlibType Type = GetCXXStdlibType(*DAL);

+ 6 - 6
lib/Driver/Tools.cpp

@@ -768,7 +768,7 @@ void Clang::AddARMTargetArgs(const ArgList &Args,
   // Select the ABI to use.
   // Select the ABI to use.
   //
   //
   // FIXME: Support -meabi.
   // FIXME: Support -meabi.
-  const char *ABIName = 0;
+  const char *ABIName = nullptr;
   if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) {
   if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) {
     ABIName = A->getValue();
     ABIName = A->getValue();
   } else if (Triple.isOSDarwin()) {
   } else if (Triple.isOSDarwin()) {
@@ -898,7 +898,7 @@ void Clang::AddARM64TargetArgs(const ArgList &Args,
                     options::OPT_mno_implicit_float, true))
                     options::OPT_mno_implicit_float, true))
     CmdArgs.push_back("-no-implicit-float");
     CmdArgs.push_back("-no-implicit-float");
 
 
-  const char *ABIName = 0;
+  const char *ABIName = nullptr;
   if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ))
   if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ))
     ABIName = A->getValue();
     ABIName = A->getValue();
   else if (Triple.isOSDarwin())
   else if (Triple.isOSDarwin())
@@ -1304,7 +1304,7 @@ static const char *getX86TargetCPU(const ArgList &Args,
 
 
   if (Triple.getArch() != llvm::Triple::x86_64 &&
   if (Triple.getArch() != llvm::Triple::x86_64 &&
       Triple.getArch() != llvm::Triple::x86)
       Triple.getArch() != llvm::Triple::x86)
-    return 0; // This routine is only handling x86 targets.
+    return nullptr; // This routine is only handling x86 targets.
 
 
   bool Is64Bit = Triple.getArch() == llvm::Triple::x86_64;
   bool Is64Bit = Triple.getArch() == llvm::Triple::x86_64;
 
 
@@ -6341,7 +6341,7 @@ void freebsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
 
 
   if (!Args.hasArg(options::OPT_nostdlib) &&
   if (!Args.hasArg(options::OPT_nostdlib) &&
       !Args.hasArg(options::OPT_nostartfiles)) {
       !Args.hasArg(options::OPT_nostartfiles)) {
-    const char *crt1 = NULL;
+    const char *crt1 = nullptr;
     if (!Args.hasArg(options::OPT_shared)) {
     if (!Args.hasArg(options::OPT_shared)) {
       if (Args.hasArg(options::OPT_pg))
       if (Args.hasArg(options::OPT_pg))
         crt1 = "gcrt1.o";
         crt1 = "gcrt1.o";
@@ -6355,7 +6355,7 @@ void freebsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
 
 
     CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crti.o")));
     CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crti.o")));
 
 
-    const char *crtbegin = NULL;
+    const char *crtbegin = nullptr;
     if (Args.hasArg(options::OPT_static))
     if (Args.hasArg(options::OPT_static))
       crtbegin = "crtbeginT.o";
       crtbegin = "crtbeginT.o";
     else if (Args.hasArg(options::OPT_shared) || IsPIE)
     else if (Args.hasArg(options::OPT_shared) || IsPIE)
@@ -7071,7 +7071,7 @@ void gnutools::Link::ConstructJob(Compilation &C, const JobAction &JA,
   if (!Args.hasArg(options::OPT_nostdlib) &&
   if (!Args.hasArg(options::OPT_nostdlib) &&
       !Args.hasArg(options::OPT_nostartfiles)) {
       !Args.hasArg(options::OPT_nostartfiles)) {
     if (!isAndroid) {
     if (!isAndroid) {
-      const char *crt1 = NULL;
+      const char *crt1 = nullptr;
       if (!Args.hasArg(options::OPT_shared)){
       if (!Args.hasArg(options::OPT_shared)){
         if (Args.hasArg(options::OPT_pg))
         if (Args.hasArg(options::OPT_pg))
           crt1 = "gcrt1.o";
           crt1 = "gcrt1.o";

+ 1 - 1
lib/Driver/WindowsToolChain.cpp

@@ -46,7 +46,7 @@ Tool *Windows::buildAssembler() const {
   if (getTriple().isOSBinFormatMachO())
   if (getTriple().isOSBinFormatMachO())
     return new tools::darwin::Assemble(*this);
     return new tools::darwin::Assemble(*this);
   getDriver().Diag(clang::diag::err_no_external_assembler);
   getDriver().Diag(clang::diag::err_no_external_assembler);
-  return NULL;
+  return nullptr;
 }
 }
 
 
 bool Windows::IsIntegratedAssemblerDefault() const {
 bool Windows::IsIntegratedAssemblerDefault() const {