]> granicus.if.org Git - clang/commitdiff
Comment lexing: replace manual comparison with StringRef::find_first_of
authorDmitri Gribenko <gribozavr@gmail.com>
Sun, 30 Dec 2012 19:45:46 +0000 (19:45 +0000)
committerDmitri Gribenko <gribozavr@gmail.com>
Sun, 30 Dec 2012 19:45:46 +0000 (19:45 +0000)
This gives an about 1.8% improvement on Clang bootstrap with -Wdocumentation

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171262 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/CommentLexer.cpp

index 31a09f71d993c643e4b8b80ad1edf26a74c3a11f..c5de09d0b27582b01970082b5d13eba769de6b14 100644 (file)
@@ -415,15 +415,12 @@ void Lexer::lexCommentText(Token &T) {
         return;
 
       default: {
-        while (true) {
-          TokenPtr++;
-          if (TokenPtr == CommentEnd)
-            break;
-          const char C = *TokenPtr;
-          if(C == '\n' || C == '\r' ||
-             C == '\\' || C == '@' || C == '&' || C == '<')
-            break;
-        }
+        size_t End = StringRef(TokenPtr, CommentEnd - TokenPtr).
+                         find_first_of("\n\r\\@&<");
+        if (End != StringRef::npos)
+          TokenPtr += End;
+        else
+          TokenPtr = CommentEnd;
         formTextToken(T, TokenPtr);
         return;
       }