--I;
if (I->getOffset() <= SLocOffset) {
FileID Res = FileID::get(int(I - LocalSLocEntryTable.begin()));
- // Remember it. We have good locality across FileID lookups.
- LastFileIDLookup = Res;
+
+ // If this isn't an expansion, remember it. We have good locality across
+ // FileID lookups.
+ if (!I->isExpansion())
+ LastFileIDLookup = Res;
NumLinearScans += NumProbes+1;
return Res;
}
const SrcMgr::SLocEntry &E = getLoadedSLocEntry(I);
if (E.getOffset() <= SLocOffset) {
FileID Res = FileID::get(-int(I) - 2);
- LastFileIDLookup = Res;
+
+ if (!E.isExpansion())
+ LastFileIDLookup = Res;
NumLinearScans += NumProbes + 1;
return Res;
}
if (isOffsetInFileID(FileID::get(-int(MiddleIndex) - 2), SLocOffset)) {
FileID Res = FileID::get(-int(MiddleIndex) - 2);
- LastFileIDLookup = Res;
+ if (!E.isExpansion())
+ LastFileIDLookup = Res;
NumBinaryProbes += NumProbes;
return Res;
}