Author: serge-sans-paille Date: 2021-03-15T18:27:19+01:00 New Revision: 9628cb1feef63d764c57fd0652016f9188000e2f
URL: https://github.com/llvm/llvm-project/commit/9628cb1feef63d764c57fd0652016f9188000e2f DIFF: https://github.com/llvm/llvm-project/commit/9628cb1feef63d764c57fd0652016f9188000e2f.diff LOG: [NFC] Use higher level constructs to check for whitespace/newlines in the lexer It turns out that according to valgrind and perf, it's also slightly faster. Differential Revision: https://reviews.llvm.org/D98637 Added: Modified: clang/lib/Lex/Lexer.cpp Removed: ################################################################################ diff --git a/clang/lib/Lex/Lexer.cpp b/clang/lib/Lex/Lexer.cpp index e63574e306fb..75c0fb65f5b1 100644 --- a/clang/lib/Lex/Lexer.cpp +++ b/clang/lib/Lex/Lexer.cpp @@ -2061,7 +2061,7 @@ bool Lexer::LexAngledStringLiteral(Token &Result, const char *CurPtr) { if (C == '\\') C = getAndAdvanceChar(CurPtr, Result); - if (C == '\n' || C == '\r' || // Newline. + if (isVerticalWhitespace(C) || // Newline. (C == 0 && (CurPtr - 1 == BufferEnd))) { // End of file. // If the filename is unterminated, then it must just be a lone < // character. Return this as such. @@ -3208,10 +3208,10 @@ bool Lexer::LexTokenInternal(Token &Result, bool TokAtPhysicalStartOfLine) { const char *CurPtr = BufferPtr; // Small amounts of horizontal whitespace is very common between tokens. - if ((*CurPtr == ' ') || (*CurPtr == '\t')) { - ++CurPtr; - while ((*CurPtr == ' ') || (*CurPtr == '\t')) + if (isHorizontalWhitespace(*CurPtr)) { + do { ++CurPtr; + } while (isHorizontalWhitespace(*CurPtr)); // If we are keeping whitespace and other tokens, just return what we just // skipped. The next lexer invocation will return the token after the _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits