<div dir="ltr">Yeah I did see a few bool function arguments and didn't convert. Here a couple examples<div><br></div><div><div>lib/IR/Verifier.cpp</div><div>347-void Verifier::visit(Instruction &I) {</div><div>348- for (unsigned i = 0, e = I.getNumOperands(); i != e; ++i)</div>
<div>349: Assert1(I.getOperand(i) != nullptr, "Operand is null", &I);</div><div>--</div><div>2022- for (Use &U : I.uses()) {</div><div>2023- if (Instruction *Used = dyn_cast<Instruction>(U.getUser()))</div>
<div>2024: Assert2(Used->getParent() != nullptr, "Instruction referencing"</div><div>--</div><div>2031-</div><div>2032- for (unsigned i = 0, e = I.getNumOperands(); i != e; ++i) {</div><div>2033: Assert1(I.getOperand(i) != nullptr, "Instruction has null operand!", &I);</div>
</div><div><br></div><div><div>lib/IR/Globals.cpp</div><div>92- Constant *InitVal,</div><div>93- const Twine &Name, ThreadLocalMode TLMode,</div><div>94- unsigned AddressSpace,</div>
<div>95- bool isExternallyInitialized)</div><div>96- : GlobalValue(PointerType::get(Ty, AddressSpace),</div><div>97- Value::GlobalVariableVal,</div><div>98- OperandTraits<GlobalVariable>::op_begin(this),</div>
<div>99: InitVal != nullptr, Link, Name),</div><div>--</div><div>113- const Twine &Name,</div><div>114- GlobalVariable *Before, ThreadLocalMode TLMode,</div>
<div>115- unsigned AddressSpace,</div><div>116- bool isExternallyInitialized)</div><div>117- : GlobalValue(PointerType::get(Ty, AddressSpace),</div><div>118- Value::GlobalVariableVal,</div>
<div>119- OperandTraits<GlobalVariable>::op_begin(this),</div><div>120: InitVal != nullptr, Link, Name),</div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 9, 2014 at 9:24 AM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Did you come across any cases of<br>
<br>
void func(bool)<br>
<br>
T *t;<br>
<br>
func(t);<br>
<br>
or similar? Implicit conversion in function parameters seems especially subtle.<br>
<div class="HOEnZb"><div class="h5"><br>
On Wed, Apr 9, 2014 at 7:51 AM, Craig Topper <<a href="mailto:craig.topper@gmail.com">craig.topper@gmail.com</a>> wrote:<br>
> There were also some cases of things like<br>
><br>
> if (foo == 0 || bar == nullptr)<br>
><br>
> Where i left the nullptr since it seemed better not to mix between explicit<br>
> and implicit comparisons.<br>
><br>
><br>
> On Wed, Apr 9, 2014 at 7:47 AM, Craig Topper <<a href="mailto:craig.topper@gmail.com">craig.topper@gmail.com</a>> wrote:<br>
>><br>
>> It wasn't discussed, but a significant portion of LLVM doesn't explicitly<br>
>> compare. I mostly only converted if statements since I know I've seen lots<br>
>> of if statements that don't explicitly compare.<br>
>><br>
>> I didn't change things like<br>
>><br>
>> bool bar = foo != nullptr;<br>
>><br>
>> or<br>
>><br>
>> bool bar() { return foo != nullptr; }<br>
>><br>
>><br>
>> Since those seemed less clear without a comparison operation.<br>
>><br>
>><br>
>><br>
>> On Wed, Apr 9, 2014 at 6:20 AM, Chandler Carruth <<a href="mailto:chandlerc@google.com">chandlerc@google.com</a>><br>
>> wrote:<br>
>>><br>
>>> FWIW, I think this is fine. The boolean test is idiomatic in C++ and I<br>
>>> see no reason for LLVM to diverge.<br>
>>><br>
>>> On Apr 9, 2014 1:36 PM, "Eli Bendersky" <<a href="mailto:eliben@google.com">eliben@google.com</a>> wrote:<br>
>>>><br>
>>>> Craig, was this change discussed somewhere? The LLVM coding guidelines<br>
>>>> are silent about this, but some C++ style guides recommend explicit<br>
>>>> comparisons to nullptr.<br>
>>>><br>
>>>> Eli<br>
>>>><br>
>>>><br>
>>>> On Tue, Apr 8, 2014 at 9:20 PM, Craig Topper <<a href="mailto:craig.topper@gmail.com">craig.topper@gmail.com</a>><br>
>>>> wrote:<br>
>>>>><br>
>>>>> Author: ctopper<br>
>>>>> Date: Tue Apr 8 23:20:00 2014<br>
>>>>> New Revision: 205829<br>
>>>>><br>
>>>>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=205829&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=205829&view=rev</a><br>
>>>>> Log:<br>
>>>>> [C++11] Replace some comparisons with 'nullptr' with simple boolean<br>
>>>>> checks to reduce verbosity.<br>
>>>>><br>
>>>>> Modified:<br>
>>>>> llvm/trunk/include/llvm/ADT/IntrusiveRefCntPtr.h<br>
>>>>> llvm/trunk/include/llvm/ADT/StringRef.h<br>
>>>>> llvm/trunk/include/llvm/ADT/ilist.h<br>
>>>>> llvm/trunk/include/llvm/CodeGen/PBQP/Graph.h<br>
>>>>> llvm/trunk/include/llvm/Support/CommandLine.h<br>
>>>>> llvm/trunk/include/llvm/Support/FileSystem.h<br>
>>>>> llvm/trunk/include/llvm/Support/YAMLParser.h<br>
>>>>> llvm/trunk/lib/Support/Allocator.cpp<br>
>>>>> llvm/trunk/lib/Support/CommandLine.cpp<br>
>>>>> llvm/trunk/lib/Support/DynamicLibrary.cpp<br>
>>>>> llvm/trunk/lib/Support/FoldingSet.cpp<br>
>>>>> llvm/trunk/lib/Support/ManagedStatic.cpp<br>
>>>>> llvm/trunk/lib/Support/PrettyStackTrace.cpp<br>
>>>>> llvm/trunk/lib/Support/SourceMgr.cpp<br>
>>>>> llvm/trunk/lib/Support/StringMap.cpp<br>
>>>>> llvm/trunk/lib/Support/TargetRegistry.cpp<br>
>>>>> llvm/trunk/lib/Support/Timer.cpp<br>
>>>>> llvm/trunk/lib/Support/YAMLParser.cpp<br>
>>>>> llvm/trunk/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp<br>
>>>>><br>
>>>>> Modified: llvm/trunk/include/llvm/ADT/IntrusiveRefCntPtr.h<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/IntrusiveRefCntPtr.h?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/IntrusiveRefCntPtr.h?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/include/llvm/ADT/IntrusiveRefCntPtr.h (original)<br>
>>>>> +++ llvm/trunk/include/llvm/ADT/IntrusiveRefCntPtr.h Tue Apr 8<br>
>>>>> 23:20:00 2014<br>
>>>>> @@ -179,7 +179,7 @@ public:<br>
>>>>><br>
>>>>> typedef T* (IntrusiveRefCntPtr::*unspecified_bool_type) () const;<br>
>>>>> operator unspecified_bool_type() const {<br>
>>>>> - return Obj == nullptr ? nullptr : &IntrusiveRefCntPtr::getPtr;<br>
>>>>> + return Obj ? &IntrusiveRefCntPtr::getPtr : nullptr;<br>
>>>>> }<br>
>>>>><br>
>>>>> void swap(IntrusiveRefCntPtr& other) {<br>
>>>>><br>
>>>>> Modified: llvm/trunk/include/llvm/ADT/StringRef.h<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/StringRef.h?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/StringRef.h?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/include/llvm/ADT/StringRef.h (original)<br>
>>>>> +++ llvm/trunk/include/llvm/ADT/StringRef.h Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -186,7 +186,7 @@ namespace llvm {<br>
>>>>><br>
>>>>> /// str - Get the contents as an std::string.<br>
>>>>> std::string str() const {<br>
>>>>> - if (Data == nullptr) return std::string();<br>
>>>>> + if (!Data) return std::string();<br>
>>>>> return std::string(Data, Length);<br>
>>>>> }<br>
>>>>><br>
>>>>><br>
>>>>> Modified: llvm/trunk/include/llvm/ADT/ilist.h<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ilist.h?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ilist.h?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/include/llvm/ADT/ilist.h (original)<br>
>>>>> +++ llvm/trunk/include/llvm/ADT/ilist.h Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -383,7 +383,7 @@ public:<br>
>>>>> // Miscellaneous inspection routines.<br>
>>>>> size_type max_size() const { return size_type(-1); }<br>
>>>>> bool LLVM_ATTRIBUTE_UNUSED_RESULT empty() const {<br>
>>>>> - return Head == nullptr || Head == getTail();<br>
>>>>> + return !Head || Head == getTail();<br>
>>>>> }<br>
>>>>><br>
>>>>> // Front and back accessor functions...<br>
>>>>><br>
>>>>> Modified: llvm/trunk/include/llvm/CodeGen/PBQP/Graph.h<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/PBQP/Graph.h?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/PBQP/Graph.h?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/include/llvm/CodeGen/PBQP/Graph.h (original)<br>
>>>>> +++ llvm/trunk/include/llvm/CodeGen/PBQP/Graph.h Tue Apr 8 23:20:00<br>
>>>>> 2014<br>
>>>>> @@ -336,7 +336,7 @@ namespace PBQP {<br>
>>>>> /// each node in the graph, and handleAddEdge for each edge, to<br>
>>>>> give the<br>
>>>>> /// solver an opportunity to set up any requried metadata.<br>
>>>>> void setSolver(SolverT &S) {<br>
>>>>> - assert(Solver == nullptr && "Solver already set. Call<br>
>>>>> unsetSolver().");<br>
>>>>> + assert(!Solver && "Solver already set. Call unsetSolver().");<br>
>>>>> Solver = &S;<br>
>>>>> for (auto NId : nodeIds())<br>
>>>>> Solver->handleAddNode(NId);<br>
>>>>> @@ -346,7 +346,7 @@ namespace PBQP {<br>
>>>>><br>
>>>>> /// \brief Release from solver instance.<br>
>>>>> void unsetSolver() {<br>
>>>>> - assert(Solver != nullptr && "Solver not set.");<br>
>>>>> + assert(Solver && "Solver not set.");<br>
>>>>> Solver = nullptr;<br>
>>>>> }<br>
>>>>><br>
>>>>><br>
>>>>> Modified: llvm/trunk/include/llvm/Support/CommandLine.h<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/CommandLine.h?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/CommandLine.h?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/include/llvm/Support/CommandLine.h (original)<br>
>>>>> +++ llvm/trunk/include/llvm/Support/CommandLine.h Tue Apr 8 23:20:00<br>
>>>>> 2014<br>
>>>>> @@ -1664,7 +1664,7 @@ class alias : public Option {<br>
>>>>> void done() {<br>
>>>>> if (!hasArgStr())<br>
>>>>> error("cl::alias must have argument name specified!");<br>
>>>>> - if (AliasFor == nullptr)<br>
>>>>> + if (!AliasFor)<br>
>>>>> error("cl::alias must have an cl::aliasopt(option) specified!");<br>
>>>>> addArgument();<br>
>>>>> }<br>
>>>>><br>
>>>>> Modified: llvm/trunk/include/llvm/Support/FileSystem.h<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/FileSystem.h?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/FileSystem.h?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/include/llvm/Support/FileSystem.h (original)<br>
>>>>> +++ llvm/trunk/include/llvm/Support/FileSystem.h Tue Apr 8 23:20:00<br>
>>>>> 2014<br>
>>>>> @@ -828,9 +828,9 @@ public:<br>
>>>>> bool operator==(const directory_iterator &RHS) const {<br>
>>>>> if (State == RHS.State)<br>
>>>>> return true;<br>
>>>>> - if (RHS.State == nullptr)<br>
>>>>> + if (!RHS.State)<br>
>>>>> return State->CurrentEntry == directory_entry();<br>
>>>>> - if (State == nullptr)<br>
>>>>> + if (!State)<br>
>>>>> return RHS.State->CurrentEntry == directory_entry();<br>
>>>>> return State->CurrentEntry == RHS.State->CurrentEntry;<br>
>>>>> }<br>
>>>>><br>
>>>>> Modified: llvm/trunk/include/llvm/Support/YAMLParser.h<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/YAMLParser.h?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/YAMLParser.h?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/include/llvm/Support/YAMLParser.h (original)<br>
>>>>> +++ llvm/trunk/include/llvm/Support/YAMLParser.h Tue Apr 8 23:20:00<br>
>>>>> 2014<br>
>>>>> @@ -305,7 +305,7 @@ public:<br>
>>>>> assert(Base && "Attempted to advance iterator past end!");<br>
>>>>> Base->increment();<br>
>>>>> // Create an end iterator.<br>
>>>>> - if (Base->CurrentEntry == nullptr)<br>
>>>>> + if (!Base->CurrentEntry)<br>
>>>>> Base = nullptr;<br>
>>>>> return *this;<br>
>>>>> }<br>
>>>>><br>
>>>>> Modified: llvm/trunk/lib/Support/Allocator.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Allocator.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Allocator.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Support/Allocator.cpp (original)<br>
>>>>> +++ llvm/trunk/lib/Support/Allocator.cpp Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -39,7 +39,7 @@ void MallocSlabAllocator::Deallocate(Mem<br>
>>>>> void BumpPtrAllocatorBase::PrintStats() const {<br>
>>>>> unsigned NumSlabs = 0;<br>
>>>>> size_t TotalMemory = 0;<br>
>>>>> - for (MemSlab *Slab = CurSlab; Slab != nullptr; Slab = Slab->NextPtr)<br>
>>>>> {<br>
>>>>> + for (MemSlab *Slab = CurSlab; Slab; Slab = Slab->NextPtr) {<br>
>>>>> TotalMemory += Slab->Size;<br>
>>>>> ++NumSlabs;<br>
>>>>> }<br>
>>>>> @@ -53,7 +53,7 @@ void BumpPtrAllocatorBase::PrintStats()<br>
>>>>><br>
>>>>> size_t BumpPtrAllocatorBase::getTotalMemory() const {<br>
>>>>> size_t TotalMemory = 0;<br>
>>>>> - for (MemSlab *Slab = CurSlab; Slab != nullptr; Slab = Slab->NextPtr)<br>
>>>>> {<br>
>>>>> + for (MemSlab *Slab = CurSlab; Slab; Slab = Slab->NextPtr) {<br>
>>>>> TotalMemory += Slab->Size;<br>
>>>>> }<br>
>>>>> return TotalMemory;<br>
>>>>><br>
>>>>> Modified: llvm/trunk/lib/Support/CommandLine.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/CommandLine.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/CommandLine.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Support/CommandLine.cpp (original)<br>
>>>>> +++ llvm/trunk/lib/Support/CommandLine.cpp Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -300,7 +300,7 @@ static inline bool ProvideOption(Option<br>
>>>>> // Enforce value requirements<br>
>>>>> switch (Handler->getValueExpectedFlag()) {<br>
>>>>> case ValueRequired:<br>
>>>>> - if (Value.data() == nullptr) { // No value specified?<br>
>>>>> + if (!Value.data()) { // No value specified?<br>
>>>>> if (i+1 >= argc)<br>
>>>>> return Handler->error("requires a value!");<br>
>>>>> // Steal the next argument, like for '-o filename'<br>
>>>>> @@ -400,7 +400,7 @@ static Option *HandlePrefixedOrGroupedOp<br>
>>>>> // Do the lookup!<br>
>>>>> size_t Length = 0;<br>
>>>>> Option *PGOpt = getOptionPred(Arg, Length, isPrefixedOrGrouping,<br>
>>>>> OptionsMap);<br>
>>>>> - if (PGOpt == nullptr) return nullptr;<br>
>>>>> + if (!PGOpt) return nullptr;<br>
>>>>><br>
>>>>> // If the option is a prefixed option, then the value is simply the<br>
>>>>> // rest of the name... so fall through to later processing, by<br>
>>>>> @@ -770,7 +770,7 @@ void cl::ParseCommandLineOptions(int arg<br>
>>>>><br>
>>>>> // Calculate how many positional values are _required_.<br>
>>>>> bool UnboundedFound = false;<br>
>>>>> - for (size_t i = ConsumeAfterOpt != nullptr, e =<br>
>>>>> PositionalOpts.size();<br>
>>>>> + for (size_t i = ConsumeAfterOpt ? 1 : 0, e =<br>
>>>>> PositionalOpts.size();<br>
>>>>> i != e; ++i) {<br>
>>>>> Option *Opt = PositionalOpts[i];<br>
>>>>> if (RequiresValue(Opt))<br>
>>>>> @@ -845,8 +845,7 @@ void cl::ParseCommandLineOptions(int arg<br>
>>>>> // All of the positional arguments have been fulfulled, give<br>
>>>>> the rest to<br>
>>>>> // the consume after option... if it's specified...<br>
>>>>> //<br>
>>>>> - if (PositionalVals.size() >= NumPositionalRequired &&<br>
>>>>> - ConsumeAfterOpt != nullptr) {<br>
>>>>> + if (PositionalVals.size() >= NumPositionalRequired &&<br>
>>>>> ConsumeAfterOpt) {<br>
>>>>> for (++i; i < argc; ++i)<br>
>>>>> PositionalVals.push_back(std::make_pair(argv[i],i));<br>
>>>>> break; // Handle outside of the argument processing<br>
>>>>> loop...<br>
>>>>> @@ -884,18 +883,18 @@ void cl::ParseCommandLineOptions(int arg<br>
>>>>> Handler = LookupOption(ArgName, Value, Opts);<br>
>>>>><br>
>>>>> // Check to see if this "option" is really a prefixed or grouped<br>
>>>>> argument.<br>
>>>>> - if (Handler == nullptr)<br>
>>>>> + if (!Handler)<br>
>>>>> Handler = HandlePrefixedOrGroupedOption(ArgName, Value,<br>
>>>>> ErrorParsing, Opts);<br>
>>>>><br>
>>>>> // Otherwise, look for the closest available option to report to<br>
>>>>> the user<br>
>>>>> // in the upcoming error.<br>
>>>>> - if (Handler == nullptr && SinkOpts.empty())<br>
>>>>> + if (!Handler && SinkOpts.empty())<br>
>>>>> NearestHandler = LookupNearestOption(ArgName, Opts,<br>
>>>>> NearestHandlerString);<br>
>>>>> }<br>
>>>>><br>
>>>>> - if (Handler == nullptr) {<br>
>>>>> + if (!Handler) {<br>
>>>>> if (SinkOpts.empty()) {<br>
>>>>> errs() << ProgramName << ": Unknown command line argument '"<br>
>>>>> << argv[i] << "'. Try: '" << argv[0] << " -help'\n";<br>
>>>>> @@ -939,7 +938,7 @@ void cl::ParseCommandLineOptions(int arg<br>
>>>>> << " positional arguments: See: " << argv[0] << " -help\n";<br>
>>>>> ErrorParsing = true;<br>
>>>>><br>
>>>>> - } else if (ConsumeAfterOpt == nullptr) {<br>
>>>>> + } else if (!ConsumeAfterOpt) {<br>
>>>>> // Positional args have already been handled if ConsumeAfter is<br>
>>>>> specified.<br>
>>>>> unsigned ValNo = 0, NumVals =<br>
>>>>> static_cast<unsigned>(PositionalVals.size());<br>
>>>>> for (size_t i = 0, e = PositionalOpts.size(); i != e; ++i) {<br>
>>>>> @@ -1044,7 +1043,7 @@ void cl::ParseCommandLineOptions(int arg<br>
>>>>> //<br>
>>>>><br>
>>>>> bool Option::error(const Twine &Message, StringRef ArgName) {<br>
>>>>> - if (ArgName.data() == nullptr) ArgName = ArgStr;<br>
>>>>> + if (!ArgName.data()) ArgName = ArgStr;<br>
>>>>> if (ArgName.empty())<br>
>>>>> errs() << HelpStr; // Be nice for positional arguments<br>
>>>>> else<br>
>>>>> @@ -1779,7 +1778,7 @@ void cl::SetVersionPrinter(void (*func)(<br>
>>>>> }<br>
>>>>><br>
>>>>> void cl::AddExtraVersionPrinter(void (*func)()) {<br>
>>>>> - if (ExtraVersionPrinters == nullptr)<br>
>>>>> + if (!ExtraVersionPrinters)<br>
>>>>> ExtraVersionPrinters = new std::vector<void (*)()>;<br>
>>>>><br>
>>>>> ExtraVersionPrinters->push_back(func);<br>
>>>>><br>
>>>>> Modified: llvm/trunk/lib/Support/DynamicLibrary.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/DynamicLibrary.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/DynamicLibrary.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Support/DynamicLibrary.cpp (original)<br>
>>>>> +++ llvm/trunk/lib/Support/DynamicLibrary.cpp Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -58,7 +58,7 @@ DynamicLibrary DynamicLibrary::getPerman<br>
>>>>> SmartScopedLock<true> lock(*SymbolsMutex);<br>
>>>>><br>
>>>>> void *handle = dlopen(filename, RTLD_LAZY|RTLD_GLOBAL);<br>
>>>>> - if (handle == nullptr) {<br>
>>>>> + if (!handle) {<br>
>>>>> if (errMsg) *errMsg = dlerror();<br>
>>>>> return DynamicLibrary();<br>
>>>>> }<br>
>>>>> @@ -66,11 +66,11 @@ DynamicLibrary DynamicLibrary::getPerman<br>
>>>>> #ifdef __CYGWIN__<br>
>>>>> // Cygwin searches symbols only in the main<br>
>>>>> // with the handle of dlopen(NULL, RTLD_GLOBAL).<br>
>>>>> - if (filename == NULL)<br>
>>>>> + if (!filename)<br>
>>>>> handle = RTLD_DEFAULT;<br>
>>>>> #endif<br>
>>>>><br>
>>>>> - if (OpenedHandles == nullptr)<br>
>>>>> + if (!OpenedHandles)<br>
>>>>> OpenedHandles = new DenseSet<void *>();<br>
>>>>><br>
>>>>> // If we've already loaded this library, dlclose() the handle in<br>
>>>>> order to<br>
>>>>><br>
>>>>> Modified: llvm/trunk/lib/Support/FoldingSet.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/FoldingSet.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/FoldingSet.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Support/FoldingSet.cpp (original)<br>
>>>>> +++ llvm/trunk/lib/Support/FoldingSet.cpp Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -323,7 +323,7 @@ void FoldingSetImpl::InsertNode(Node *N,<br>
>>>>> // If this is the first insertion into this bucket, its next pointer<br>
>>>>> will be<br>
>>>>> // null. Pretend as if it pointed to itself, setting the low bit to<br>
>>>>> indicate<br>
>>>>> // that it is a pointer to the bucket.<br>
>>>>> - if (Next == nullptr)<br>
>>>>> + if (!Next)<br>
>>>>> Next =<br>
>>>>> reinterpret_cast<void*>(reinterpret_cast<intptr_t>(Bucket)|1);<br>
>>>>><br>
>>>>> // Set the node's next pointer, and make the bucket point to the<br>
>>>>> node.<br>
>>>>> @@ -337,7 +337,7 @@ bool FoldingSetImpl::RemoveNode(Node *N)<br>
>>>>> // Because each bucket is a circular list, we don't need to compute<br>
>>>>> N's hash<br>
>>>>> // to remove it.<br>
>>>>> void *Ptr = N->getNextInBucket();<br>
>>>>> - if (Ptr == nullptr) return false; // Not in folding set.<br>
>>>>> + if (!Ptr) return false; // Not in folding set.<br>
>>>>><br>
>>>>> --NumNodes;<br>
>>>>> N->SetNextInBucket(nullptr);<br>
>>>>> @@ -390,7 +390,7 @@ FoldingSetImpl::Node *FoldingSetImpl::Ge<br>
>>>>> FoldingSetIteratorImpl::FoldingSetIteratorImpl(void **Bucket) {<br>
>>>>> // Skip to the first non-null non-self-cycle bucket.<br>
>>>>> while (*Bucket != reinterpret_cast<void*>(-1) &&<br>
>>>>> - (*Bucket == nullptr || GetNextPtr(*Bucket) == nullptr))<br>
>>>>> + (!*Bucket || !GetNextPtr(*Bucket)))<br>
>>>>> ++Bucket;<br>
>>>>><br>
>>>>> NodePtr = static_cast<FoldingSetNode*>(*Bucket);<br>
>>>>> @@ -410,7 +410,7 @@ void FoldingSetIteratorImpl::advance() {<br>
>>>>> do {<br>
>>>>> ++Bucket;<br>
>>>>> } while (*Bucket != reinterpret_cast<void*>(-1) &&<br>
>>>>> - (*Bucket == nullptr || GetNextPtr(*Bucket) == nullptr));<br>
>>>>> + (!*Bucket || !GetNextPtr(*Bucket)));<br>
>>>>><br>
>>>>> NodePtr = static_cast<FoldingSetNode*>(*Bucket);<br>
>>>>> }<br>
>>>>> @@ -420,6 +420,5 @@ void FoldingSetIteratorImpl::advance() {<br>
>>>>> // FoldingSetBucketIteratorImpl Implementation<br>
>>>>><br>
>>>>> FoldingSetBucketIteratorImpl::FoldingSetBucketIteratorImpl(void<br>
>>>>> **Bucket) {<br>
>>>>> - Ptr = (*Bucket == nullptr || GetNextPtr(*Bucket) == nullptr) ?<br>
>>>>> (void*) Bucket<br>
>>>>> - :<br>
>>>>> *Bucket;<br>
>>>>> + Ptr = (!*Bucket || !GetNextPtr(*Bucket)) ? (void*) Bucket : *Bucket;<br>
>>>>> }<br>
>>>>><br>
>>>>> Modified: llvm/trunk/lib/Support/ManagedStatic.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/ManagedStatic.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/ManagedStatic.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Support/ManagedStatic.cpp (original)<br>
>>>>> +++ llvm/trunk/lib/Support/ManagedStatic.cpp Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -24,7 +24,7 @@ void ManagedStaticBase::RegisterManagedS<br>
>>>>> if (llvm_is_multithreaded()) {<br>
>>>>> llvm_acquire_global_lock();<br>
>>>>><br>
>>>>> - if (Ptr == nullptr) {<br>
>>>>> + if (!Ptr) {<br>
>>>>> void* tmp = Creator ? Creator() : nullptr;<br>
>>>>><br>
>>>>> TsanHappensBefore(this);<br>
>>>>><br>
>>>>> Modified: llvm/trunk/lib/Support/PrettyStackTrace.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/PrettyStackTrace.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/PrettyStackTrace.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Support/PrettyStackTrace.cpp (original)<br>
>>>>> +++ llvm/trunk/lib/Support/PrettyStackTrace.cpp Tue Apr 8 23:20:00<br>
>>>>> 2014<br>
>>>>> @@ -46,7 +46,7 @@ static unsigned PrintStack(const PrettyS<br>
>>>>> /// PrintCurStackTrace - Print the current stack trace to the<br>
>>>>> specified stream.<br>
>>>>> static void PrintCurStackTrace(raw_ostream &OS) {<br>
>>>>> // Don't print an empty trace.<br>
>>>>> - if (PrettyStackTraceHead->get() == nullptr) return;<br>
>>>>> + if (!PrettyStackTraceHead->get()) return;<br>
>>>>><br>
>>>>> // If there are pretty stack frames registered, walk and emit them.<br>
>>>>> OS << "Stack dump:\n";<br>
>>>>><br>
>>>>> Modified: llvm/trunk/lib/Support/SourceMgr.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/SourceMgr.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/SourceMgr.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Support/SourceMgr.cpp (original)<br>
>>>>> +++ llvm/trunk/lib/Support/SourceMgr.cpp Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -114,7 +114,7 @@ SourceMgr::getLineAndColumn(SMLoc Loc, i<br>
>>>>> if (*Ptr == '\n') ++LineNo;<br>
>>>>><br>
>>>>> // Allocate the line number cache if it doesn't exist.<br>
>>>>> - if (LineNoCache == nullptr)<br>
>>>>> + if (!LineNoCache)<br>
>>>>> LineNoCache = new LineNoCacheTy();<br>
>>>>><br>
>>>>> // Update the line # cache.<br>
>>>>><br>
>>>>> Modified: llvm/trunk/lib/Support/StringMap.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/StringMap.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/StringMap.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Support/StringMap.cpp (original)<br>
>>>>> +++ llvm/trunk/lib/Support/StringMap.cpp Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -70,7 +70,7 @@ unsigned StringMapImpl::LookupBucketFor(<br>
>>>>> while (1) {<br>
>>>>> StringMapEntryBase *BucketItem = TheTable[BucketNo];<br>
>>>>> // If we found an empty bucket, this key isn't in the table yet,<br>
>>>>> return it.<br>
>>>>> - if (LLVM_LIKELY(BucketItem == nullptr)) {<br>
>>>>> + if (LLVM_LIKELY(!BucketItem)) {<br>
>>>>> // If we found a tombstone, we want to reuse the tombstone<br>
>>>>> instead of an<br>
>>>>> // empty bucket. This reduces probing.<br>
>>>>> if (FirstTombstone != -1) {<br>
>>>>> @@ -124,7 +124,7 @@ int StringMapImpl::FindKey(StringRef Key<br>
>>>>> while (1) {<br>
>>>>> StringMapEntryBase *BucketItem = TheTable[BucketNo];<br>
>>>>> // If we found an empty bucket, this key isn't in the table yet,<br>
>>>>> return.<br>
>>>>> - if (LLVM_LIKELY(BucketItem == nullptr))<br>
>>>>> + if (LLVM_LIKELY(!BucketItem))<br>
>>>>> return -1;<br>
>>>>><br>
>>>>> if (BucketItem == getTombstoneVal()) {<br>
>>>>> @@ -212,7 +212,7 @@ void StringMapImpl::RehashTable() {<br>
>>>>> // Fast case, bucket available.<br>
>>>>> unsigned FullHash = HashTable[I];<br>
>>>>> unsigned NewBucket = FullHash & (NewSize-1);<br>
>>>>> - if (NewTableArray[NewBucket] == nullptr) {<br>
>>>>> + if (!NewTableArray[NewBucket]) {<br>
>>>>> NewTableArray[FullHash & (NewSize-1)] = Bucket;<br>
>>>>> NewHashArray[FullHash & (NewSize-1)] = FullHash;<br>
>>>>> continue;<br>
>>>>><br>
>>>>> Modified: llvm/trunk/lib/Support/TargetRegistry.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/TargetRegistry.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/TargetRegistry.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Support/TargetRegistry.cpp (original)<br>
>>>>> +++ llvm/trunk/lib/Support/TargetRegistry.cpp Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -53,7 +53,7 @@ const Target *TargetRegistry::lookupTarg<br>
>>>>> // Get the target specific parser.<br>
>>>>> std::string TempError;<br>
>>>>> TheTarget = TargetRegistry::lookupTarget(TheTriple.getTriple(),<br>
>>>>> TempError);<br>
>>>>> - if (TheTarget == nullptr) {<br>
>>>>> + if (!TheTarget) {<br>
>>>>> Error = ": error: unable to get target for '"<br>
>>>>> + TheTriple.getTriple()<br>
>>>>> + "', see --version and --triple.\n";<br>
>>>>><br>
>>>>> Modified: llvm/trunk/lib/Support/Timer.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Timer.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Timer.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Support/Timer.cpp (original)<br>
>>>>> +++ llvm/trunk/lib/Support/Timer.cpp Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -264,7 +264,7 @@ TimerGroup::TimerGroup(StringRef name)<br>
>>>>> TimerGroup::~TimerGroup() {<br>
>>>>> // If the timer group is destroyed before the timers it owns,<br>
>>>>> accumulate and<br>
>>>>> // print the timing data.<br>
>>>>> - while (FirstTimer != nullptr)<br>
>>>>> + while (FirstTimer)<br>
>>>>> removeTimer(*FirstTimer);<br>
>>>>><br>
>>>>> // Remove the group from the TimerGroupList.<br>
>>>>> @@ -291,7 +291,7 @@ void TimerGroup::removeTimer(Timer &T) {<br>
>>>>><br>
>>>>> // Print the report when all timers in this group are destroyed if<br>
>>>>> some of<br>
>>>>> // them were started.<br>
>>>>> - if (FirstTimer != nullptr || TimersToPrint.empty())<br>
>>>>> + if (FirstTimer || TimersToPrint.empty())<br>
>>>>> return;<br>
>>>>><br>
>>>>> raw_ostream *OutStream = CreateInfoOutputFile();<br>
>>>>><br>
>>>>> Modified: llvm/trunk/lib/Support/YAMLParser.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/YAMLParser.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/YAMLParser.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Support/YAMLParser.cpp (original)<br>
>>>>> +++ llvm/trunk/lib/Support/YAMLParser.cpp Tue Apr 8 23:20:00 2014<br>
>>>>> @@ -1941,7 +1941,7 @@ void SequenceNode::increment() {<br>
>>>>> case Token::TK_BlockEntry:<br>
>>>>> getNext();<br>
>>>>> CurrentEntry = parseBlockNode();<br>
>>>>> - if (CurrentEntry == nullptr) { // An error occurred.<br>
>>>>> + if (!CurrentEntry) { // An error occurred.<br>
>>>>> IsAtEnd = true;<br>
>>>>> CurrentEntry = nullptr;<br>
>>>>> }<br>
>>>>> @@ -1963,7 +1963,7 @@ void SequenceNode::increment() {<br>
>>>>> case Token::TK_BlockEntry:<br>
>>>>> getNext();<br>
>>>>> CurrentEntry = parseBlockNode();<br>
>>>>> - if (CurrentEntry == nullptr) { // An error occurred.<br>
>>>>> + if (!CurrentEntry) { // An error occurred.<br>
>>>>> IsAtEnd = true;<br>
>>>>> CurrentEntry = nullptr;<br>
>>>>> }<br>
>>>>><br>
>>>>> Modified:<br>
>>>>> llvm/trunk/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp?rev=205829&r1=205828&r2=205829&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp?rev=205829&r1=205828&r2=205829&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- llvm/trunk/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp<br>
>>>>> (original)<br>
>>>>> +++ llvm/trunk/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp Tue<br>
>>>>> Apr 8 23:20:00 2014<br>
>>>>> @@ -111,7 +111,7 @@ static bool IsEliminableAddrSpaceCast(Op<br>
>>>>> bool NVPTXFavorNonGenericAddrSpaces::hoistAddrSpaceCastFromGEP(<br>
>>>>> GEPOperator *GEP) {<br>
>>>>> Operator *Cast = dyn_cast<Operator>(GEP->getPointerOperand());<br>
>>>>> - if (Cast == nullptr)<br>
>>>>> + if (!Cast)<br>
>>>>> return false;<br>
>>>>><br>
>>>>> if (!IsEliminableAddrSpaceCast(Cast))<br>
>>>>><br>
>>>>><br>
>>>>> _______________________________________________<br>
>>>>> llvm-commits mailing list<br>
>>>>> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
>>>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
>>>><br>
>>>><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> llvm-commits mailing list<br>
>>>> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
>>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
>>>><br>
>><br>
>><br>
>><br>
>> --<br>
>> ~Craig<br>
><br>
><br>
><br>
><br>
> --<br>
> ~Craig<br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>~Craig
</div>