aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/clang/lib/Format/FormatTokenLexer.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2021-12-02 21:49:08 +0000
committerDimitry Andric <dim@FreeBSD.org>2022-05-14 11:43:49 +0000
commit4824e7fd18a1223177218d4aec1b3c6c5c4a444e (patch)
tree5ca6493b1b0bf6a41f257794c0116d5e50fbf37c /contrib/llvm-project/clang/lib/Format/FormatTokenLexer.cpp
parent5e801ac66d24704442eba426ed13c3effb8a34e7 (diff)
parentf65dcba83ce5035ab88a85fe17628b447eb56e1b (diff)
Diffstat (limited to 'contrib/llvm-project/clang/lib/Format/FormatTokenLexer.cpp')
-rw-r--r--contrib/llvm-project/clang/lib/Format/FormatTokenLexer.cpp49
1 files changed, 32 insertions, 17 deletions
diff --git a/contrib/llvm-project/clang/lib/Format/FormatTokenLexer.cpp b/contrib/llvm-project/clang/lib/Format/FormatTokenLexer.cpp
index 8075756cca03..64fbd2d5d45b 100644
--- a/contrib/llvm-project/clang/lib/Format/FormatTokenLexer.cpp
+++ b/contrib/llvm-project/clang/lib/Format/FormatTokenLexer.cpp
@@ -37,27 +37,40 @@ FormatTokenLexer::FormatTokenLexer(
getFormattingLangOpts(Style)));
Lex->SetKeepWhitespaceMode(true);
- for (const std::string &ForEachMacro : Style.ForEachMacros)
- Macros.insert({&IdentTable.get(ForEachMacro), TT_ForEachMacro});
- for (const std::string &IfMacro : Style.IfMacros)
- Macros.insert({&IdentTable.get(IfMacro), TT_IfMacro});
- for (const std::string &AttributeMacro : Style.AttributeMacros)
- Macros.insert({&IdentTable.get(AttributeMacro), TT_AttributeMacro});
- for (const std::string &StatementMacro : Style.StatementMacros)
- Macros.insert({&IdentTable.get(StatementMacro), TT_StatementMacro});
- for (const std::string &TypenameMacro : Style.TypenameMacros)
- Macros.insert({&IdentTable.get(TypenameMacro), TT_TypenameMacro});
- for (const std::string &NamespaceMacro : Style.NamespaceMacros)
- Macros.insert({&IdentTable.get(NamespaceMacro), TT_NamespaceMacro});
+ for (const std::string &ForEachMacro : Style.ForEachMacros) {
+ auto Identifier = &IdentTable.get(ForEachMacro);
+ Macros.insert({Identifier, TT_ForEachMacro});
+ }
+ for (const std::string &IfMacro : Style.IfMacros) {
+ auto Identifier = &IdentTable.get(IfMacro);
+ Macros.insert({Identifier, TT_IfMacro});
+ }
+ for (const std::string &AttributeMacro : Style.AttributeMacros) {
+ auto Identifier = &IdentTable.get(AttributeMacro);
+ Macros.insert({Identifier, TT_AttributeMacro});
+ }
+ for (const std::string &StatementMacro : Style.StatementMacros) {
+ auto Identifier = &IdentTable.get(StatementMacro);
+ Macros.insert({Identifier, TT_StatementMacro});
+ }
+ for (const std::string &TypenameMacro : Style.TypenameMacros) {
+ auto Identifier = &IdentTable.get(TypenameMacro);
+ Macros.insert({Identifier, TT_TypenameMacro});
+ }
+ for (const std::string &NamespaceMacro : Style.NamespaceMacros) {
+ auto Identifier = &IdentTable.get(NamespaceMacro);
+ Macros.insert({Identifier, TT_NamespaceMacro});
+ }
for (const std::string &WhitespaceSensitiveMacro :
Style.WhitespaceSensitiveMacros) {
- Macros.insert(
- {&IdentTable.get(WhitespaceSensitiveMacro), TT_UntouchableMacroFunc});
+ auto Identifier = &IdentTable.get(WhitespaceSensitiveMacro);
+ Macros.insert({Identifier, TT_UntouchableMacroFunc});
}
for (const std::string &StatementAttributeLikeMacro :
- Style.StatementAttributeLikeMacros)
- Macros.insert({&IdentTable.get(StatementAttributeLikeMacro),
- TT_StatementAttributeLikeMacro});
+ Style.StatementAttributeLikeMacros) {
+ auto Identifier = &IdentTable.get(StatementAttributeLikeMacro);
+ Macros.insert({Identifier, TT_StatementAttributeLikeMacro});
+ }
}
ArrayRef<FormatToken *> FormatTokenLexer::lex() {
@@ -739,6 +752,8 @@ bool FormatTokenLexer::tryMerge_TMacro() {
Tokens.pop_back();
Tokens.pop_back();
Tokens.back() = String;
+ if (FirstInLineIndex >= Tokens.size())
+ FirstInLineIndex = Tokens.size() - 1;
return true;
}