[C++11] Make use of 'nullptr' in the Support library.
llvm-svn: 205697
This commit is contained in:
@@ -81,7 +81,7 @@ void StringSaver::anchor() {}
|
||||
// Globals for name and overview of program. Program name is not a string to
|
||||
// avoid static ctor/dtor issues.
|
||||
static char ProgramName[80] = "<premain>";
|
||||
static const char *ProgramOverview = 0;
|
||||
static const char *ProgramOverview = nullptr;
|
||||
|
||||
// This collects additional help to be printed.
|
||||
static ManagedStatic<std::vector<const char*> > MoreHelp;
|
||||
@@ -100,7 +100,7 @@ void cl::MarkOptionsChanged() {
|
||||
|
||||
/// RegisteredOptionList - This is the list of the command line options that
|
||||
/// have statically constructed themselves.
|
||||
static Option *RegisteredOptionList = 0;
|
||||
static Option *RegisteredOptionList = nullptr;
|
||||
|
||||
void Option::addArgument() {
|
||||
assert(NextRegistered == 0 && "argument multiply registered!");
|
||||
@@ -144,7 +144,7 @@ static void GetOptionInfo(SmallVectorImpl<Option*> &PositionalOpts,
|
||||
SmallVectorImpl<Option*> &SinkOpts,
|
||||
StringMap<Option*> &OptionsMap) {
|
||||
SmallVector<const char*, 16> OptionNames;
|
||||
Option *CAOpt = 0; // The ConsumeAfter option if it exists.
|
||||
Option *CAOpt = nullptr; // The ConsumeAfter option if it exists.
|
||||
for (Option *O = RegisteredOptionList; O; O = O->getNextRegisteredOption()) {
|
||||
// If this option wants to handle multiple option names, get the full set.
|
||||
// This handles enum options like "-O1 -O2" etc.
|
||||
@@ -189,7 +189,7 @@ static void GetOptionInfo(SmallVectorImpl<Option*> &PositionalOpts,
|
||||
static Option *LookupOption(StringRef &Arg, StringRef &Value,
|
||||
const StringMap<Option*> &OptionsMap) {
|
||||
// Reject all dashes.
|
||||
if (Arg.empty()) return 0;
|
||||
if (Arg.empty()) return nullptr;
|
||||
|
||||
size_t EqualPos = Arg.find('=');
|
||||
|
||||
@@ -197,14 +197,14 @@ static Option *LookupOption(StringRef &Arg, StringRef &Value,
|
||||
if (EqualPos == StringRef::npos) {
|
||||
// Look up the option.
|
||||
StringMap<Option*>::const_iterator I = OptionsMap.find(Arg);
|
||||
return I != OptionsMap.end() ? I->second : 0;
|
||||
return I != OptionsMap.end() ? I->second : nullptr;
|
||||
}
|
||||
|
||||
// If the argument before the = is a valid option name, we match. If not,
|
||||
// return Arg unmolested.
|
||||
StringMap<Option*>::const_iterator I =
|
||||
OptionsMap.find(Arg.substr(0, EqualPos));
|
||||
if (I == OptionsMap.end()) return 0;
|
||||
if (I == OptionsMap.end()) return nullptr;
|
||||
|
||||
Value = Arg.substr(EqualPos+1);
|
||||
Arg = Arg.substr(0, EqualPos);
|
||||
@@ -219,7 +219,7 @@ static Option *LookupNearestOption(StringRef Arg,
|
||||
const StringMap<Option*> &OptionsMap,
|
||||
std::string &NearestString) {
|
||||
// Reject all dashes.
|
||||
if (Arg.empty()) return 0;
|
||||
if (Arg.empty()) return nullptr;
|
||||
|
||||
// Split on any equal sign.
|
||||
std::pair<StringRef, StringRef> SplitArg = Arg.split('=');
|
||||
@@ -227,7 +227,7 @@ static Option *LookupNearestOption(StringRef Arg,
|
||||
StringRef &RHS = SplitArg.second;
|
||||
|
||||
// Find the closest match.
|
||||
Option *Best = 0;
|
||||
Option *Best = nullptr;
|
||||
unsigned BestDistance = 0;
|
||||
for (StringMap<Option*>::const_iterator it = OptionsMap.begin(),
|
||||
ie = OptionsMap.end(); it != ie; ++it) {
|
||||
@@ -300,7 +300,7 @@ static inline bool ProvideOption(Option *Handler, StringRef ArgName,
|
||||
// Enforce value requirements
|
||||
switch (Handler->getValueExpectedFlag()) {
|
||||
case ValueRequired:
|
||||
if (Value.data() == 0) { // No value specified?
|
||||
if (Value.data() == nullptr) { // No value specified?
|
||||
if (i+1 >= argc)
|
||||
return Handler->error("requires a value!");
|
||||
// Steal the next argument, like for '-o filename'
|
||||
@@ -349,7 +349,7 @@ static inline bool ProvideOption(Option *Handler, StringRef ArgName,
|
||||
|
||||
static bool ProvidePositionalOption(Option *Handler, StringRef Arg, int i) {
|
||||
int Dummy = i;
|
||||
return ProvideOption(Handler, Handler->ArgStr, Arg, 0, 0, Dummy);
|
||||
return ProvideOption(Handler, Handler->ArgStr, Arg, 0, nullptr, Dummy);
|
||||
}
|
||||
|
||||
|
||||
@@ -385,7 +385,7 @@ static Option *getOptionPred(StringRef Name, size_t &Length,
|
||||
Length = Name.size();
|
||||
return OMI->second; // Found one!
|
||||
}
|
||||
return 0; // No option found!
|
||||
return nullptr; // No option found!
|
||||
}
|
||||
|
||||
/// HandlePrefixedOrGroupedOption - The specified argument string (which started
|
||||
@@ -395,12 +395,12 @@ static Option *getOptionPred(StringRef Name, size_t &Length,
|
||||
static Option *HandlePrefixedOrGroupedOption(StringRef &Arg, StringRef &Value,
|
||||
bool &ErrorParsing,
|
||||
const StringMap<Option*> &OptionsMap) {
|
||||
if (Arg.size() == 1) return 0;
|
||||
if (Arg.size() == 1) return nullptr;
|
||||
|
||||
// Do the lookup!
|
||||
size_t Length = 0;
|
||||
Option *PGOpt = getOptionPred(Arg, Length, isPrefixedOrGrouping, OptionsMap);
|
||||
if (PGOpt == 0) return 0;
|
||||
if (PGOpt == nullptr) return nullptr;
|
||||
|
||||
// If the option is a prefixed option, then the value is simply the
|
||||
// rest of the name... so fall through to later processing, by
|
||||
@@ -427,7 +427,7 @@ static Option *HandlePrefixedOrGroupedOption(StringRef &Arg, StringRef &Value,
|
||||
"Option can not be cl::Grouping AND cl::ValueRequired!");
|
||||
int Dummy = 0;
|
||||
ErrorParsing |= ProvideOption(PGOpt, OneArgName,
|
||||
StringRef(), 0, 0, Dummy);
|
||||
StringRef(), 0, nullptr, Dummy);
|
||||
|
||||
// Get the next grouping option.
|
||||
PGOpt = getOptionPred(Arg, Length, isGrouping, OptionsMap);
|
||||
@@ -760,7 +760,7 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
|
||||
// Determine whether or not there are an unlimited number of positionals
|
||||
bool HasUnlimitedPositionals = false;
|
||||
|
||||
Option *ConsumeAfterOpt = 0;
|
||||
Option *ConsumeAfterOpt = nullptr;
|
||||
if (!PositionalOpts.empty()) {
|
||||
if (PositionalOpts[0]->getNumOccurrencesFlag() == cl::ConsumeAfter) {
|
||||
assert(PositionalOpts.size() > 1 &&
|
||||
@@ -770,7 +770,7 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
|
||||
|
||||
// Calculate how many positional values are _required_.
|
||||
bool UnboundedFound = false;
|
||||
for (size_t i = ConsumeAfterOpt != 0, e = PositionalOpts.size();
|
||||
for (size_t i = ConsumeAfterOpt != nullptr, e = PositionalOpts.size();
|
||||
i != e; ++i) {
|
||||
Option *Opt = PositionalOpts[i];
|
||||
if (RequiresValue(Opt))
|
||||
@@ -806,13 +806,13 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
|
||||
// If the program has named positional arguments, and the name has been run
|
||||
// across, keep track of which positional argument was named. Otherwise put
|
||||
// the positional args into the PositionalVals list...
|
||||
Option *ActivePositionalArg = 0;
|
||||
Option *ActivePositionalArg = nullptr;
|
||||
|
||||
// Loop over all of the arguments... processing them.
|
||||
bool DashDashFound = false; // Have we read '--'?
|
||||
for (int i = 1; i < argc; ++i) {
|
||||
Option *Handler = 0;
|
||||
Option *NearestHandler = 0;
|
||||
Option *Handler = nullptr;
|
||||
Option *NearestHandler = nullptr;
|
||||
std::string NearestHandlerString;
|
||||
StringRef Value;
|
||||
StringRef ArgName = "";
|
||||
@@ -846,7 +846,7 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
|
||||
// the consume after option... if it's specified...
|
||||
//
|
||||
if (PositionalVals.size() >= NumPositionalRequired &&
|
||||
ConsumeAfterOpt != 0) {
|
||||
ConsumeAfterOpt != nullptr) {
|
||||
for (++i; i < argc; ++i)
|
||||
PositionalVals.push_back(std::make_pair(argv[i],i));
|
||||
break; // Handle outside of the argument processing loop...
|
||||
@@ -884,18 +884,18 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
|
||||
Handler = LookupOption(ArgName, Value, Opts);
|
||||
|
||||
// Check to see if this "option" is really a prefixed or grouped argument.
|
||||
if (Handler == 0)
|
||||
if (Handler == nullptr)
|
||||
Handler = HandlePrefixedOrGroupedOption(ArgName, Value,
|
||||
ErrorParsing, Opts);
|
||||
|
||||
// Otherwise, look for the closest available option to report to the user
|
||||
// in the upcoming error.
|
||||
if (Handler == 0 && SinkOpts.empty())
|
||||
if (Handler == nullptr && SinkOpts.empty())
|
||||
NearestHandler = LookupNearestOption(ArgName, Opts,
|
||||
NearestHandlerString);
|
||||
}
|
||||
|
||||
if (Handler == 0) {
|
||||
if (Handler == nullptr) {
|
||||
if (SinkOpts.empty()) {
|
||||
errs() << ProgramName << ": Unknown command line argument '"
|
||||
<< argv[i] << "'. Try: '" << argv[0] << " -help'\n";
|
||||
@@ -939,7 +939,7 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
|
||||
<< " positional arguments: See: " << argv[0] << " -help\n";
|
||||
ErrorParsing = true;
|
||||
|
||||
} else if (ConsumeAfterOpt == 0) {
|
||||
} else if (ConsumeAfterOpt == nullptr) {
|
||||
// Positional args have already been handled if ConsumeAfter is specified.
|
||||
unsigned ValNo = 0, NumVals = static_cast<unsigned>(PositionalVals.size());
|
||||
for (size_t i = 0, e = PositionalOpts.size(); i != e; ++i) {
|
||||
@@ -1044,7 +1044,7 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
|
||||
//
|
||||
|
||||
bool Option::error(const Twine &Message, StringRef ArgName) {
|
||||
if (ArgName.data() == 0) ArgName = ArgStr;
|
||||
if (ArgName.data() == nullptr) ArgName = ArgStr;
|
||||
if (ArgName.empty())
|
||||
errs() << HelpStr; // Be nice for positional arguments
|
||||
else
|
||||
@@ -1455,12 +1455,12 @@ public:
|
||||
outs() << "USAGE: " << ProgramName << " [options]";
|
||||
|
||||
// Print out the positional options.
|
||||
Option *CAOpt = 0; // The cl::ConsumeAfter option, if it exists...
|
||||
Option *CAOpt = nullptr; // The cl::ConsumeAfter option, if it exists...
|
||||
if (!PositionalOpts.empty() &&
|
||||
PositionalOpts[0]->getNumOccurrencesFlag() == ConsumeAfter)
|
||||
CAOpt = PositionalOpts[0];
|
||||
|
||||
for (size_t i = CAOpt != 0, e = PositionalOpts.size(); i != e; ++i) {
|
||||
for (size_t i = CAOpt != nullptr, e = PositionalOpts.size(); i != e; ++i) {
|
||||
if (PositionalOpts[i]->ArgStr[0])
|
||||
outs() << " --" << PositionalOpts[i]->ArgStr;
|
||||
outs() << " " << PositionalOpts[i]->HelpStr;
|
||||
@@ -1555,7 +1555,7 @@ protected:
|
||||
outs() << (*Category)->getName() << ":\n";
|
||||
|
||||
// Check if description is set.
|
||||
if ((*Category)->getDescription() != 0)
|
||||
if ((*Category)->getDescription() != nullptr)
|
||||
outs() << (*Category)->getDescription() << "\n\n";
|
||||
else
|
||||
outs() << "\n";
|
||||
@@ -1686,9 +1686,9 @@ void cl::PrintOptionValues() {
|
||||
Opts[i].second->printOptionValue(MaxArgLen, PrintAllOptions);
|
||||
}
|
||||
|
||||
static void (*OverrideVersionPrinter)() = 0;
|
||||
static void (*OverrideVersionPrinter)() = nullptr;
|
||||
|
||||
static std::vector<void (*)()>* ExtraVersionPrinters = 0;
|
||||
static std::vector<void (*)()>* ExtraVersionPrinters = nullptr;
|
||||
|
||||
namespace {
|
||||
class VersionPrinter {
|
||||
@@ -1721,7 +1721,7 @@ public:
|
||||
void operator=(bool OptionWasSpecified) {
|
||||
if (!OptionWasSpecified) return;
|
||||
|
||||
if (OverrideVersionPrinter != 0) {
|
||||
if (OverrideVersionPrinter != nullptr) {
|
||||
(*OverrideVersionPrinter)();
|
||||
exit(0);
|
||||
}
|
||||
@@ -1729,7 +1729,7 @@ public:
|
||||
|
||||
// Iterate over any registered extra printers and call them to add further
|
||||
// information.
|
||||
if (ExtraVersionPrinters != 0) {
|
||||
if (ExtraVersionPrinters != nullptr) {
|
||||
outs() << '\n';
|
||||
for (std::vector<void (*)()>::iterator I = ExtraVersionPrinters->begin(),
|
||||
E = ExtraVersionPrinters->end();
|
||||
@@ -1779,7 +1779,7 @@ void cl::SetVersionPrinter(void (*func)()) {
|
||||
}
|
||||
|
||||
void cl::AddExtraVersionPrinter(void (*func)()) {
|
||||
if (ExtraVersionPrinters == 0)
|
||||
if (ExtraVersionPrinters == nullptr)
|
||||
ExtraVersionPrinters = new std::vector<void (*)()>;
|
||||
|
||||
ExtraVersionPrinters->push_back(func);
|
||||
|
||||
Reference in New Issue
Block a user