r189112 - Use pop_back_val() instead of both back() and pop_back().
Jordan Rose
jordan_rose at apple.com
Fri Aug 23 13:53:35 PDT 2013
For the record, Clang is compiled with -fno-exceptions and is not exception-safe. But, good point.
Jordan
On Aug 23, 2013, at 13:30 , Arthur O'Dwyer <arthur.j.odwyer at gmail.com> wrote:
> FYI, the "assign from back() and then pop if successful" idiom is
> often employed in template situations where it's conceivable that the
> relevant constructor or assignment operator could throw an exception.
> That said, I'm 99% sure that this patch is totally fine, since AFAICT
> it's dealing entirely with Clang-controlled types that never throw
> exceptions.
>
> –Arthur
>
>
> On Fri, Aug 23, 2013 at 9:11 AM, Robert Wilhelm <robert.wilhelm at gmx.net> wrote:
>> Author: row
>> Date: Fri Aug 23 11:11:15 2013
>> New Revision: 189112
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=189112&view=rev
>> Log:
>> Use pop_back_val() instead of both back() and pop_back().
>> No functionality change intended.
>>
>> Modified:
>> cfe/trunk/include/clang/AST/ASTUnresolvedSet.h
>> cfe/trunk/include/clang/AST/CommentParser.h
>> cfe/trunk/include/clang/AST/UnresolvedSet.h
>> cfe/trunk/include/clang/Analysis/FlowSensitive/DataflowSolver.h
>> cfe/trunk/include/clang/Lex/PreprocessorLexer.h
>> cfe/trunk/lib/AST/CXXInheritance.cpp
>> cfe/trunk/lib/AST/CommentSema.cpp
>> cfe/trunk/lib/AST/NestedNameSpecifier.cpp
>> cfe/trunk/lib/Analysis/CFGReachabilityAnalysis.cpp
>> cfe/trunk/lib/Analysis/LiveVariables.cpp
>> cfe/trunk/lib/Analysis/UninitializedValues.cpp
>> cfe/trunk/lib/CodeGen/CodeGenModule.cpp
>> cfe/trunk/lib/Lex/TokenLexer.cpp
>> cfe/trunk/lib/Sema/Sema.cpp
>> cfe/trunk/lib/Sema/SemaAccess.cpp
>> cfe/trunk/lib/Sema/SemaChecking.cpp
>> cfe/trunk/lib/Sema/SemaCodeComplete.cpp
>> cfe/trunk/lib/Sema/SemaDeclCXX.cpp
>> cfe/trunk/lib/Sema/SemaLookup.cpp
>> cfe/trunk/lib/Sema/SemaTemplate.cpp
>> cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp
>> cfe/trunk/lib/Serialization/ASTReader.cpp
>> cfe/trunk/lib/Serialization/ModuleManager.cpp
>> cfe/trunk/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
>> cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp
>> cfe/trunk/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
>> cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
>> cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
>> cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp
>> cfe/trunk/tools/libclang/CIndex.cpp
>>
>> Modified: cfe/trunk/include/clang/AST/ASTUnresolvedSet.h
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/ASTUnresolvedSet.h?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/include/clang/AST/ASTUnresolvedSet.h (original)
>> +++ cfe/trunk/include/clang/AST/ASTUnresolvedSet.h Fri Aug 23 11:11:15 2013
>> @@ -58,10 +58,7 @@ public:
>> return false;
>> }
>>
>> - void erase(unsigned I) {
>> - Decls[I] = Decls.back();
>> - Decls.pop_back();
>> - }
>> + void erase(unsigned I) { Decls[I] = Decls.pop_back_val(); }
>>
>> void clear() { Decls.clear(); }
>>
>>
>> Modified: cfe/trunk/include/clang/AST/CommentParser.h
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/CommentParser.h?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/include/clang/AST/CommentParser.h (original)
>> +++ cfe/trunk/include/clang/AST/CommentParser.h Fri Aug 23 11:11:15 2013
>> @@ -61,10 +61,8 @@ class Parser {
>> void consumeToken() {
>> if (MoreLATokens.empty())
>> L.lex(Tok);
>> - else {
>> - Tok = MoreLATokens.back();
>> - MoreLATokens.pop_back();
>> - }
>> + else
>> + Tok = MoreLATokens.pop_back_val();
>> }
>>
>> void putBack(const Token &OldTok) {
>>
>> Modified: cfe/trunk/include/clang/AST/UnresolvedSet.h
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/UnresolvedSet.h?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/include/clang/AST/UnresolvedSet.h (original)
>> +++ cfe/trunk/include/clang/AST/UnresolvedSet.h Fri Aug 23 11:11:15 2013
>> @@ -139,15 +139,9 @@ public:
>> I.ir->set(New, AS);
>> }
>>
>> - void erase(unsigned I) {
>> - decls()[I] = decls().back();
>> - decls().pop_back();
>> - }
>> + void erase(unsigned I) { decls()[I] = decls().pop_back_val(); }
>>
>> - void erase(iterator I) {
>> - *I.ir = decls().back();
>> - decls().pop_back();
>> - }
>> + void erase(iterator I) { *I.ir = decls().pop_back_val(); }
>>
>> void setAccess(iterator I, AccessSpecifier AS) {
>> I.ir->setAccess(AS);
>>
>> Modified: cfe/trunk/include/clang/Analysis/FlowSensitive/DataflowSolver.h
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/FlowSensitive/DataflowSolver.h?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/include/clang/Analysis/FlowSensitive/DataflowSolver.h (original)
>> +++ cfe/trunk/include/clang/Analysis/FlowSensitive/DataflowSolver.h Fri Aug 23 11:11:15 2013
>> @@ -45,8 +45,7 @@ public:
>> /// dequeue - Remove a block from the worklist.
>> const CFGBlock *dequeue() {
>> assert(!BlockQueue.empty());
>> - const CFGBlock *B = BlockQueue.back();
>> - BlockQueue.pop_back();
>> + const CFGBlock *B = BlockQueue.pop_back_val();
>> BlockSet[B] = 0;
>> return B;
>> }
>>
>> Modified: cfe/trunk/include/clang/Lex/PreprocessorLexer.h
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/PreprocessorLexer.h?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/include/clang/Lex/PreprocessorLexer.h (original)
>> +++ cfe/trunk/include/clang/Lex/PreprocessorLexer.h Fri Aug 23 11:11:15 2013
>> @@ -111,9 +111,9 @@ protected:
>> /// stack, returning information about it. If the conditional stack is empty,
>> /// this returns true and does not fill in the arguments.
>> bool popConditionalLevel(PPConditionalInfo &CI) {
>> - if (ConditionalStack.empty()) return true;
>> - CI = ConditionalStack.back();
>> - ConditionalStack.pop_back();
>> + if (ConditionalStack.empty())
>> + return true;
>> + CI = ConditionalStack.pop_back_val();
>> return false;
>> }
>>
>>
>> Modified: cfe/trunk/lib/AST/CXXInheritance.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/CXXInheritance.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/AST/CXXInheritance.cpp (original)
>> +++ cfe/trunk/lib/AST/CXXInheritance.cpp Fri Aug 23 11:11:15 2013
>> @@ -168,9 +168,9 @@ bool CXXRecordDecl::forallBases(ForallBa
>> }
>> }
>>
>> - if (Queue.empty()) break;
>> - Record = Queue.back(); // not actually a queue.
>> - Queue.pop_back();
>> + if (Queue.empty())
>> + break;
>> + Record = Queue.pop_back_val(); // not actually a queue.
>> }
>>
>> return AllMatches;
>>
>> Modified: cfe/trunk/lib/AST/CommentSema.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/CommentSema.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/AST/CommentSema.cpp (original)
>> +++ cfe/trunk/lib/AST/CommentSema.cpp Fri Aug 23 11:11:15 2013
>> @@ -515,8 +515,7 @@ HTMLEndTagComment *Sema::actOnHTMLEndTag
>> }
>>
>> while (!HTMLOpenTags.empty()) {
>> - const HTMLStartTagComment *HST = HTMLOpenTags.back();
>> - HTMLOpenTags.pop_back();
>> + const HTMLStartTagComment *HST = HTMLOpenTags.pop_back_val();
>> StringRef LastNotClosedTagName = HST->getTagName();
>> if (LastNotClosedTagName == TagName)
>> break;
>>
>> Modified: cfe/trunk/lib/AST/NestedNameSpecifier.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/NestedNameSpecifier.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/AST/NestedNameSpecifier.cpp (original)
>> +++ cfe/trunk/lib/AST/NestedNameSpecifier.cpp Fri Aug 23 11:11:15 2013
>> @@ -566,8 +566,7 @@ void NestedNameSpecifierLocBuilder::Make
>> for (NestedNameSpecifier *NNS = Qualifier; NNS; NNS = NNS->getPrefix())
>> Stack.push_back(NNS);
>> while (!Stack.empty()) {
>> - NestedNameSpecifier *NNS = Stack.back();
>> - Stack.pop_back();
>> + NestedNameSpecifier *NNS = Stack.pop_back_val();
>> switch (NNS->getKind()) {
>> case NestedNameSpecifier::Identifier:
>> case NestedNameSpecifier::Namespace:
>>
>> Modified: cfe/trunk/lib/Analysis/CFGReachabilityAnalysis.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/CFGReachabilityAnalysis.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Analysis/CFGReachabilityAnalysis.cpp (original)
>> +++ cfe/trunk/lib/Analysis/CFGReachabilityAnalysis.cpp Fri Aug 23 11:11:15 2013
>> @@ -50,11 +50,10 @@ void CFGReverseBlockReachabilityAnalysis
>> // multiple queries relating to a destination node.
>> worklist.push_back(Dst);
>> bool firstRun = true;
>> -
>> - while (!worklist.empty()) {
>> - const CFGBlock *block = worklist.back();
>> - worklist.pop_back();
>> -
>> +
>> + while (!worklist.empty()) {
>> + const CFGBlock *block = worklist.pop_back_val();
>> +
>> if (visited[block->getBlockID()])
>> continue;
>> visited[block->getBlockID()] = true;
>>
>> Modified: cfe/trunk/lib/Analysis/LiveVariables.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/LiveVariables.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Analysis/LiveVariables.cpp (original)
>> +++ cfe/trunk/lib/Analysis/LiveVariables.cpp Fri Aug 23 11:11:15 2013
>> @@ -87,8 +87,7 @@ void DataflowWorklist::sortWorklist() {
>> const CFGBlock *DataflowWorklist::dequeue() {
>> if (worklist.empty())
>> return 0;
>> - const CFGBlock *b = worklist.back();
>> - worklist.pop_back();
>> + const CFGBlock *b = worklist.pop_back_val();
>> enqueuedBlocks[b->getBlockID()] = false;
>> return b;
>> }
>>
>> Modified: cfe/trunk/lib/Analysis/UninitializedValues.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/UninitializedValues.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Analysis/UninitializedValues.cpp (original)
>> +++ cfe/trunk/lib/Analysis/UninitializedValues.cpp Fri Aug 23 11:11:15 2013
>> @@ -240,10 +240,9 @@ const CFGBlock *DataflowWorklist::dequeu
>>
>> // First dequeue from the worklist. This can represent
>> // updates along backedges that we want propagated as quickly as possible.
>> - if (!worklist.empty()) {
>> - B = worklist.back();
>> - worklist.pop_back();
>> - }
>> + if (!worklist.empty())
>> + B = worklist.pop_back_val();
>> +
>> // Next dequeue from the initial reverse post order. This is the
>> // theoretical ideal in the presence of no back edges.
>> else if (PO_I != PO_E) {
>> @@ -527,8 +526,7 @@ public:
>> // of marking it as not being a candidate element of the frontier.
>> SuccsVisited[block->getBlockID()] = block->succ_size();
>> while (!Queue.empty()) {
>> - const CFGBlock *B = Queue.back();
>> - Queue.pop_back();
>> + const CFGBlock *B = Queue.pop_back_val();
>> for (CFGBlock::const_pred_iterator I = B->pred_begin(), E = B->pred_end();
>> I != E; ++I) {
>> const CFGBlock *Pred = *I;
>>
>> Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original)
>> +++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Fri Aug 23 11:11:15 2013
>> @@ -863,8 +863,7 @@ void CodeGenModule::EmitModuleLinkOption
>> // Find all of the modules to import, making a little effort to prune
>> // non-leaf modules.
>> while (!Stack.empty()) {
>> - clang::Module *Mod = Stack.back();
>> - Stack.pop_back();
>> + clang::Module *Mod = Stack.pop_back_val();
>>
>> bool AnyChildren = false;
>>
>>
>> Modified: cfe/trunk/lib/Lex/TokenLexer.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/TokenLexer.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Lex/TokenLexer.cpp (original)
>> +++ cfe/trunk/lib/Lex/TokenLexer.cpp Fri Aug 23 11:11:15 2013
>> @@ -329,8 +329,7 @@ void TokenLexer::ExpandFunctionArguments
>> (unsigned)ArgNo == Macro->getNumArgs()-1 &&
>> Macro->isVariadic()) {
>> // Remove the paste operator, report use of the extension.
>> - PP.Diag(ResultToks.back().getLocation(), diag::ext_paste_comma);
>> - ResultToks.pop_back();
>> + PP.Diag(ResultToks.pop_back_val().getLocation(), diag::ext_paste_comma);
>> }
>>
>> ResultToks.append(ArgToks, ArgToks+NumToks);
>> @@ -386,8 +385,7 @@ void TokenLexer::ExpandFunctionArguments
>> assert(PasteBefore);
>> if (NonEmptyPasteBefore) {
>> assert(ResultToks.back().is(tok::hashhash));
>> - NextTokGetsSpace |= ResultToks.back().hasLeadingSpace();
>> - ResultToks.pop_back();
>> + NextTokGetsSpace |= ResultToks.pop_back_val().hasLeadingSpace();
>> }
>>
>> // If this is the __VA_ARGS__ token, and if the argument wasn't provided,
>>
>> Modified: cfe/trunk/lib/Sema/Sema.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/Sema.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/Sema.cpp (original)
>> +++ cfe/trunk/lib/Sema/Sema.cpp Fri Aug 23 11:11:15 2013
>> @@ -630,8 +630,7 @@ void Sema::ActOnEndOfTranslationUnit() {
>> SmallVector<Module *, 2> Stack;
>> Stack.push_back(CurrentModule);
>> while (!Stack.empty()) {
>> - Module *Mod = Stack.back();
>> - Stack.pop_back();
>> + Module *Mod = Stack.pop_back_val();
>>
>> // Resolve the exported declarations and conflicts.
>> // FIXME: Actually complain, once we figure out how to teach the
>>
>> Modified: cfe/trunk/lib/Sema/SemaAccess.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaAccess.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaAccess.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaAccess.cpp Fri Aug 23 11:11:15 2013
>> @@ -315,8 +315,7 @@ static AccessResult IsDerivedFromInclusi
>>
>> if (Queue.empty()) break;
>>
>> - Derived = Queue.back();
>> - Queue.pop_back();
>> + Derived = Queue.pop_back_val();
>> }
>>
>> return OnFailure;
>>
>> Modified: cfe/trunk/lib/Sema/SemaChecking.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaChecking.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaChecking.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaChecking.cpp Fri Aug 23 11:11:15 2013
>> @@ -6031,8 +6031,7 @@ void Sema::CheckUnsequencedOperations(Ex
>> SmallVector<Expr *, 8> WorkList;
>> WorkList.push_back(E);
>> while (!WorkList.empty()) {
>> - Expr *Item = WorkList.back();
>> - WorkList.pop_back();
>> + Expr *Item = WorkList.pop_back_val();
>> SequenceChecker(*this, Item, WorkList);
>> }
>> }
>>
>> Modified: cfe/trunk/lib/Sema/SemaCodeComplete.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaCodeComplete.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaCodeComplete.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaCodeComplete.cpp Fri Aug 23 11:11:15 2013
>> @@ -464,9 +464,8 @@ getRequiredQualification(ASTContext &Con
>>
>> NestedNameSpecifier *Result = 0;
>> while (!TargetParents.empty()) {
>> - const DeclContext *Parent = TargetParents.back();
>> - TargetParents.pop_back();
>> -
>> + const DeclContext *Parent = TargetParents.pop_back_val();
>> +
>> if (const NamespaceDecl *Namespace = dyn_cast<NamespaceDecl>(Parent)) {
>> if (!Namespace->getIdentifier())
>> continue;
>>
>> Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaDeclCXX.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp Fri Aug 23 11:11:15 2013
>> @@ -1249,8 +1249,7 @@ static bool findCircularInheritance(cons
>> if (Queue.empty())
>> return false;
>>
>> - Current = Queue.back();
>> - Queue.pop_back();
>> + Current = Queue.pop_back_val();
>> }
>>
>> return false;
>>
>> Modified: cfe/trunk/lib/Sema/SemaLookup.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaLookup.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaLookup.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaLookup.cpp Fri Aug 23 11:11:15 2013
>> @@ -167,8 +167,7 @@ namespace {
>> if (queue.empty())
>> return;
>>
>> - DC = queue.back();
>> - queue.pop_back();
>> + DC = queue.pop_back_val();
>> }
>> }
>>
>> @@ -1446,8 +1445,7 @@ static bool LookupQualifiedNameInUsingDi
>>
>> bool Found = false;
>> while (!Queue.empty()) {
>> - NamespaceDecl *ND = Queue.back();
>> - Queue.pop_back();
>> + NamespaceDecl *ND = Queue.pop_back_val();
>>
>> // We go through some convolutions here to avoid copying results
>> // between LookupResults.
>> @@ -2039,8 +2037,7 @@ addAssociatedClassesAndNamespaces(Associ
>> Bases.push_back(Class);
>> while (!Bases.empty()) {
>> // Pop this class off the stack.
>> - Class = Bases.back();
>> - Bases.pop_back();
>> + Class = Bases.pop_back_val();
>>
>> // Visit the base classes.
>> for (CXXRecordDecl::base_class_iterator Base = Class->bases_begin(),
>> @@ -2224,9 +2221,9 @@ addAssociatedClassesAndNamespaces(Associ
>> continue;
>> }
>>
>> - if (Queue.empty()) break;
>> - T = Queue.back();
>> - Queue.pop_back();
>> + if (Queue.empty())
>> + break;
>> + T = Queue.pop_back_val();
>> }
>> }
>>
>>
>> Modified: cfe/trunk/lib/Sema/SemaTemplate.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplate.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaTemplate.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaTemplate.cpp Fri Aug 23 11:11:15 2013
>> @@ -3527,8 +3527,7 @@ bool Sema::CheckTemplateArgumentList(Tem
>> // deduced argument and place it on the argument pack. Note that we
>> // stay on the same template parameter so that we can deduce more
>> // arguments.
>> - ArgumentPack.push_back(Converted.back());
>> - Converted.pop_back();
>> + ArgumentPack.push_back(Converted.pop_back_val());
>> } else {
>> // Move to the next template parameter.
>> ++Param;
>>
>> Modified: cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp Fri Aug 23 11:11:15 2013
>> @@ -1431,8 +1431,7 @@ DeduceTemplateArgumentsByTypeMatch(Sema
>> Deduced.end());
>> while (!ToVisit.empty()) {
>> // Retrieve the next class in the inheritance hierarchy.
>> - const RecordType *NextT = ToVisit.back();
>> - ToVisit.pop_back();
>> + const RecordType *NextT = ToVisit.pop_back_val();
>>
>> // If we have already seen this type, skip it.
>> if (!Visited.insert(NextT))
>> @@ -2091,8 +2090,7 @@ ConvertDeducedTemplateArgument(Sema &S,
>> return true;
>>
>> // Move the converted template argument into our argument pack.
>> - PackedArgsBuilder.push_back(Output.back());
>> - Output.pop_back();
>> + PackedArgsBuilder.push_back(Output.pop_back_val());
>> }
>>
>> // Create the resulting argument pack.
>>
>> Modified: cfe/trunk/lib/Serialization/ASTReader.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Serialization/ASTReader.cpp (original)
>> +++ cfe/trunk/lib/Serialization/ASTReader.cpp Fri Aug 23 11:11:15 2013
>> @@ -2819,13 +2819,12 @@ void ASTReader::makeModuleVisible(Module
>> bool Complain) {
>> llvm::SmallPtrSet<Module *, 4> Visited;
>> SmallVector<Module *, 4> Stack;
>> - Stack.push_back(Mod);
>> + Stack.push_back(Mod);
>> while (!Stack.empty()) {
>> - Mod = Stack.back();
>> - Stack.pop_back();
>> + Mod = Stack.pop_back_val();
>>
>> if (NameVisibility <= Mod->NameVisibility) {
>> - // This module already has this level of visibility (or greater), so
>> + // This module already has this level of visibility (or greater), so
>> // there is nothing more to do.
>> continue;
>> }
>>
>> Modified: cfe/trunk/lib/Serialization/ModuleManager.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ModuleManager.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Serialization/ModuleManager.cpp (original)
>> +++ cfe/trunk/lib/Serialization/ModuleManager.cpp Fri Aug 23 11:11:15 2013
>> @@ -332,8 +332,7 @@ ModuleManager::visit(bool (*Visitor)(Mod
>> break;
>>
>> // Pop the next module off the stack.
>> - NextModule = State->Stack.back();
>> - State->Stack.pop_back();
>> + NextModule = State->Stack.pop_back_val();
>> } while (true);
>> }
>>
>>
>> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp (original)
>> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp Fri Aug 23 11:11:15 2013
>> @@ -85,10 +85,9 @@ void ReachableCode::computeReachableBloc
>>
>> SmallVector<const CFGBlock*, 10> worklist;
>> worklist.push_back(&cfg.getEntry());
>> -
>> +
>> while (!worklist.empty()) {
>> - const CFGBlock *block = worklist.back();
>> - worklist.pop_back();
>> + const CFGBlock *block = worklist.pop_back_val();
>> llvm::BitVector::reference isReachable = reachable[block->getBlockID()];
>> if (isReachable)
>> continue;
>>
>> Modified: cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp (original)
>> +++ cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp Fri Aug 23 11:11:15 2013
>> @@ -2651,10 +2651,8 @@ void BugReport::pushInterestingSymbolsAn
>> }
>>
>> void BugReport::popInterestingSymbolsAndRegions() {
>> - delete interestingSymbols.back();
>> - interestingSymbols.pop_back();
>> - delete interestingRegions.back();
>> - interestingRegions.pop_back();
>> + delete interestingSymbols.pop_back_val();
>> + delete interestingRegions.pop_back_val();
>> }
>>
>> const Stmt *BugReport::getStmt() const {
>>
>> Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/ExplodedGraph.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/StaticAnalyzer/Core/ExplodedGraph.cpp (original)
>> +++ cfe/trunk/lib/StaticAnalyzer/Core/ExplodedGraph.cpp Fri Aug 23 11:11:15 2013
>> @@ -357,8 +357,7 @@ ExplodedGraph::trim(ArrayRef<const NodeT
>>
>> // Process the first worklist until it is empty.
>> while (!WL1.empty()) {
>> - const ExplodedNode *N = WL1.back();
>> - WL1.pop_back();
>> + const ExplodedNode *N = WL1.pop_back_val();
>>
>> // Have we already visited this node? If so, continue to the next one.
>> if (Pass1.count(N))
>> @@ -388,8 +387,7 @@ ExplodedGraph::trim(ArrayRef<const NodeT
>>
>> // ===- Pass 2 (forward DFS to construct the new graph) -===
>> while (!WL2.empty()) {
>> - const ExplodedNode *N = WL2.back();
>> - WL2.pop_back();
>> + const ExplodedNode *N = WL2.pop_back_val();
>>
>> // Skip this node if we have already processed it.
>> if (Pass2.find(N) != Pass2.end())
>>
>> Modified: cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp (original)
>> +++ cfe/trunk/lib/StaticAnalyzer/Core/PathDiagnostic.cpp Fri Aug 23 11:11:15 2013
>> @@ -216,11 +216,10 @@ void PathDiagnosticConsumer::HandlePathD
>> WorkList.push_back(&D->path);
>>
>> while (!WorkList.empty()) {
>> - const PathPieces &path = *WorkList.back();
>> - WorkList.pop_back();
>> + const PathPieces &path = *WorkList.pop_back_val();
>>
>> - for (PathPieces::const_iterator I = path.begin(), E = path.end();
>> - I != E; ++I) {
>> + for (PathPieces::const_iterator I = path.begin(), E = path.end(); I != E;
>> + ++I) {
>> const PathDiagnosticPiece *piece = I->getPtr();
>> FullSourceLoc L = piece->getLocation().asLocation().getExpansionLoc();
>>
>>
>> Modified: cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp (original)
>> +++ cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp Fri Aug 23 11:11:15 2013
>> @@ -382,11 +382,10 @@ void PlistDiagnostics::FlushDiagnosticsI
>> WorkList.push_back(&D->path);
>>
>> while (!WorkList.empty()) {
>> - const PathPieces &path = *WorkList.back();
>> - WorkList.pop_back();
>> -
>> - for (PathPieces::const_iterator I = path.begin(), E = path.end();
>> - I!=E; ++I) {
>> + const PathPieces &path = *WorkList.pop_back_val();
>> +
>> + for (PathPieces::const_iterator I = path.begin(), E = path.end(); I != E;
>> + ++I) {
>> const PathDiagnosticPiece *piece = I->getPtr();
>> AddFID(FM, Fids, SM, piece->getLocation().asLocation());
>> ArrayRef<SourceRange> Ranges = piece->getRanges();
>>
>> Modified: cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp (original)
>> +++ cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp Fri Aug 23 11:11:15 2013
>> @@ -112,8 +112,7 @@ SymbolRef SymExpr::symbol_iterator::oper
>> }
>>
>> void SymExpr::symbol_iterator::expand() {
>> - const SymExpr *SE = itr.back();
>> - itr.pop_back();
>> + const SymExpr *SE = itr.pop_back_val();
>>
>> switch (SE->getKind()) {
>> case SymExpr::RegionValueKind:
>>
>> Modified: cfe/trunk/tools/libclang/CIndex.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=189112&r1=189111&r2=189112&view=diff
>> ==============================================================================
>> --- cfe/trunk/tools/libclang/CIndex.cpp (original)
>> +++ cfe/trunk/tools/libclang/CIndex.cpp Fri Aug 23 11:11:15 2013
>> @@ -2256,8 +2256,7 @@ bool CursorVisitor::IsInRegionOfInterest
>> bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) {
>> while (!WL.empty()) {
>> // Dequeue the worklist item.
>> - VisitorJob LI = WL.back();
>> - WL.pop_back();
>> + VisitorJob LI = WL.pop_back_val();
>>
>> // Set the Parent field, then back to its old value once we're done.
>> SetParentRAII SetParent(Parent, StmtParent, LI.getParent());
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list