================ @@ -1986,13 +1984,15 @@ bool SourceManager::isInTheSameTranslationUnitImpl( if (isLoadedFileID(LOffs.first) != isLoadedFileID(ROffs.first)) return false; - // If both are loaded from different AST files. if (isLoadedFileID(LOffs.first) && isLoadedFileID(ROffs.first)) { - auto FindTableSegment = [this](FileID FID) { - return llvm::upper_bound(LoadedSLocEntryTableSegments, -FID.ID - 2); + auto FindSLocEntryAlloc = [this](FileID FID) { + // FileIDs are negative, we store the beginning of each allocation (the + // lowest FileID), later allocations have lower FileIDs. + return llvm::upper_bound(LoadedSLocEntryAllocBegin, FID, std::greater{}); ---------------- jansvoboda11 wrote:
But yes, `upper_bound` ended up working because I was incorrectly doing `- 2` instead of `- 1` on the base `FileID`. https://github.com/llvm/llvm-project/pull/66962 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits