diff --git a/clang/lib/Format/TokenAnnotator.h b/clang/lib/Format/TokenAnnotator.h --- a/clang/lib/Format/TokenAnnotator.h +++ b/clang/lib/Format/TokenAnnotator.h @@ -53,9 +53,7 @@ // left them in a different state. First->Previous = nullptr; FormatToken *Current = First; - for (std::list::const_iterator I = ++Line.Tokens.begin(), - E = Line.Tokens.end(); - I != E; ++I) { + for (auto I = ++Line.Tokens.begin(), E = Line.Tokens.end(); I != E; ++I) { const UnwrappedLineNode &Node = *I; Current->Next = I->Tok; I->Tok->Previous = Current; diff --git a/clang/lib/Format/UnwrappedLineParser.h b/clang/lib/Format/UnwrappedLineParser.h --- a/clang/lib/Format/UnwrappedLineParser.h +++ b/clang/lib/Format/UnwrappedLineParser.h @@ -19,8 +19,8 @@ #include "clang/Basic/IdentifierTable.h" #include "clang/Format/Format.h" #include "llvm/Support/Regex.h" -#include #include +#include namespace clang { namespace format { @@ -36,9 +36,8 @@ struct UnwrappedLine { UnwrappedLine(); - // FIXME: Don't use std::list here. /// The \c Tokens comprising this \c UnwrappedLine. - std::list Tokens; + std::vector Tokens; /// The indent level of the \c UnwrappedLine. unsigned Level; diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -3034,24 +3034,15 @@ llvm::dbgs() << Prefix << "Line(" << Line.Level << ", FSC=" << Line.FirstStartColumn << ")" << (Line.InPPDirective ? " MACRO" : "") << ": "; - for (std::list::const_iterator I = Line.Tokens.begin(), - E = Line.Tokens.end(); - I != E; ++I) { - llvm::dbgs() << I->Tok->Tok.getName() << "[" - << "T=" << (unsigned)I->Tok->getType() - << ", OC=" << I->Tok->OriginalColumn << "] "; - } - for (std::list::const_iterator I = Line.Tokens.begin(), - E = Line.Tokens.end(); - I != E; ++I) { - const UnwrappedLineNode &Node = *I; - for (SmallVectorImpl::const_iterator - I = Node.Children.begin(), - E = Node.Children.end(); - I != E; ++I) { - printDebugInfo(*I, "\nChild: "); - } + for (const auto &Node : Line.Tokens) { + llvm::dbgs() << Node.Tok->Tok.getName() << "[" + << "T=" << static_cast(Node.Tok->getType()) + << ", OC=" << Node.Tok->OriginalColumn << "] "; } + for (const auto &Node : Line.Tokens) + for (const auto &ChildNode : Node.Children) + printDebugInfo(ChildNode, "\nChild: "); + llvm::dbgs() << "\n"; }