================ @@ -50,6 +50,18 @@ unsigned clang_equalLocations(CXSourceLocation loc1, CXSourceLocation loc2) { loc1.int_data == loc2.int_data); } +unsigned clang_lessThanLocations(CXSourceLocation loc1, CXSourceLocation loc2) { + const SourceLocation Loc1 = SourceLocation::getFromRawEncoding(loc1.int_data); + const SourceLocation Loc2 = SourceLocation::getFromRawEncoding(loc2.int_data); + + const SourceManager &SM = + *static_cast<const SourceManager *>(loc1.ptr_data[0]); + if (!SM.isWrittenInSameFile(Loc1, Loc2)) ---------------- Endilll wrote:
I think that in the following example: ```cpp int a[] = { #include "numbers.inc" }; ``` every source location in `numbers.inc` is contained within a source range that corresponds to curly braces, even though they come from different files. Hence I think `isWrittenInSameFile` check is not needed. You can also switch to `isBeforeInTranslationUnit`, but I expect it to come with a comment why we're not doing relying on `SourceLocation::operator<` to establish the ordering. ``` https://github.com/llvm/llvm-project/pull/101802 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits