SM.isWrittenInSameFile() calls getFileID(), which can be expensive.
Move this check behind some cheaper filters.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274800
91177308-0d34-0410-b5e6-
96231b3b80d8
if (CurLoc.isFileID() != NextLoc.isFileID())
break; // Token from different kind of FileID.
- if (CurLoc.isMacroID() && !SM.isWrittenInSameFile(CurLoc, NextLoc))
- break; // Token from a different macro.
-
int RelOffs;
if (!SM.isInSameSLocAddrSpace(CurLoc, NextLoc, &RelOffs))
break; // Token from different local/loaded location.
// "characters" away.
if (RelOffs < 0 || RelOffs > 50)
break;
+
+ if (CurLoc.isMacroID() && !SM.isWrittenInSameFile(CurLoc, NextLoc))
+ break; // Token from a different macro.
+
CurLoc = NextLoc;
}