diff options
author | Jonas Hahnfeld <jonas.hahnfeld@cern.ch> | 2023-08-21 12:41:56 +0200 |
---|---|---|
committer | Jonas Hahnfeld <jonas.hahnfeld@cern.ch> | 2023-10-05 11:04:07 +0200 |
commit | 3116d60494f219bfcb284d05d9ebed5b6c196ca5 (patch) | |
tree | 4098e5aead4239f84f7930b67822c2f90a37e9a1 /clang/unittests/Basic/SourceManagerTest.cpp | |
parent | 7fa33773e355aaef03197e19698303748238d91a (diff) | |
download | llvm-3116d60494f219bfcb284d05d9ebed5b6c196ca5.zip llvm-3116d60494f219bfcb284d05d9ebed5b6c196ca5.tar.gz llvm-3116d60494f219bfcb284d05d9ebed5b6c196ca5.tar.bz2 |
[Lex] Introduce Preprocessor::LexTokensUntilEOF()
This new method repeatedly calls Lex() until end of file is reached
and optionally fills a std::vector of Tokens. Use it in Clang's unit
tests to avoid quite some code duplication.
Differential Revision: https://reviews.llvm.org/D158413
Diffstat (limited to 'clang/unittests/Basic/SourceManagerTest.cpp')
-rw-r--r-- | clang/unittests/Basic/SourceManagerTest.cpp | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/clang/unittests/Basic/SourceManagerTest.cpp b/clang/unittests/Basic/SourceManagerTest.cpp index f451e43..cd2bd12 100644 --- a/clang/unittests/Basic/SourceManagerTest.cpp +++ b/clang/unittests/Basic/SourceManagerTest.cpp @@ -138,13 +138,7 @@ TEST_F(SourceManagerTest, isBeforeInTranslationUnit) { PP.EnterMainSourceFile(); std::vector<Token> toks; - while (1) { - Token tok; - PP.Lex(tok); - if (tok.is(tok::eof)) - break; - toks.push_back(tok); - } + PP.LexTokensUntilEOF(&toks); // Make sure we got the tokens that we expected. ASSERT_EQ(3U, toks.size()); @@ -195,13 +189,7 @@ TEST_F(SourceManagerTest, isBeforeInTranslationUnitWithTokenSplit) { llvm::SmallString<8> Scratch; std::vector<Token> toks; - while (1) { - Token tok; - PP.Lex(tok); - if (tok.is(tok::eof)) - break; - toks.push_back(tok); - } + PP.LexTokensUntilEOF(&toks); // Make sure we got the tokens that we expected. ASSERT_EQ(4U, toks.size()) << "a >> b c"; @@ -452,13 +440,7 @@ TEST_F(SourceManagerTest, getMacroArgExpandedLocation) { PP.EnterMainSourceFile(); std::vector<Token> toks; - while (1) { - Token tok; - PP.Lex(tok); - if (tok.is(tok::eof)) - break; - toks.push_back(tok); - } + PP.LexTokensUntilEOF(&toks); // Make sure we got the tokens that we expected. ASSERT_EQ(4U, toks.size()); @@ -574,13 +556,7 @@ TEST_F(SourceManagerTest, isBeforeInTranslationUnitWithMacroInInclude) { PP.EnterMainSourceFile(); std::vector<Token> toks; - while (1) { - Token tok; - PP.Lex(tok); - if (tok.is(tok::eof)) - break; - toks.push_back(tok); - } + PP.LexTokensUntilEOF(&toks); // Make sure we got the tokens that we expected. ASSERT_EQ(0U, toks.size()); |