Skip to content

Commit

Permalink
Comment parsing: Simplify Lexer::skipLineStartingDecorations (NFC)
Browse files Browse the repository at this point in the history
Inspection of the first character can just be handled by the loop as
well, it does exactly the same thing. Dereferencing the pointer a second
time shouldn't be an issue: the middle end can eliminate that second
read as it's separated from the first only by a pure function call.

Reviewed By: gribozavr2

Differential Revision: https://reviews.llvm.org/D116186
  • Loading branch information
aaronpuchert committed Jan 14, 2022
1 parent 0b442db commit bd0a970
Showing 1 changed file with 5 additions and 24 deletions.
29 changes: 5 additions & 24 deletions clang/lib/AST/CommentLexer.cpp
Expand Up @@ -94,31 +94,12 @@ void Lexer::skipLineStartingDecorations() {
if (BufferPtr == CommentEnd)
return;

switch (*BufferPtr) {
case ' ':
case '\t':
case '\f':
case '\v': {
const char *NewBufferPtr = BufferPtr;
NewBufferPtr++;
if (NewBufferPtr == CommentEnd)
const char *NewBufferPtr = BufferPtr;
while (isHorizontalWhitespace(*NewBufferPtr))
if (++NewBufferPtr == CommentEnd)
return;

char C = *NewBufferPtr;
while (isHorizontalWhitespace(C)) {
NewBufferPtr++;
if (NewBufferPtr == CommentEnd)
return;
C = *NewBufferPtr;
}
if (C == '*')
BufferPtr = NewBufferPtr + 1;
break;
}
case '*':
BufferPtr++;
break;
}
if (*NewBufferPtr == '*')
BufferPtr = NewBufferPtr + 1;
}

namespace {
Expand Down

0 comments on commit bd0a970

Please sign in to comment.