llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Haojian Wu (hokein) <details> <summary>Changes</summary> Introduce a type alias for the commonly used `std::pair<FileID, unsigned>` to improve code readability, and make it easier for future updates (64-bit source locations). --- Patch is 52.91 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/145711.diff 38 Files Affected: - (modified) clang/include/clang/Basic/SourceLocation.h (+4-2) - (modified) clang/include/clang/Basic/SourceManager.h (+12-16) - (modified) clang/lib/AST/ASTContext.cpp (+1-1) - (modified) clang/lib/AST/ASTImporter.cpp (+1-1) - (modified) clang/lib/AST/CommentLexer.cpp (+1-1) - (modified) clang/lib/AST/Expr.cpp (+1-2) - (modified) clang/lib/AST/RawCommentList.cpp (+3-4) - (modified) clang/lib/Analysis/PathDiagnostic.cpp (+2-2) - (modified) clang/lib/Basic/Diagnostic.cpp (+4-5) - (modified) clang/lib/Basic/Sarif.cpp (+1-1) - (modified) clang/lib/Basic/SourceLocation.cpp (+2-2) - (modified) clang/lib/Basic/SourceManager.cpp (+27-32) - (modified) clang/lib/Edit/Commit.cpp (+4-4) - (modified) clang/lib/Frontend/SARIFDiagnostic.cpp (+2-2) - (modified) clang/lib/Frontend/TextDiagnostic.cpp (+3-3) - (modified) clang/lib/Index/CommentToXML.cpp (+1-1) - (modified) clang/lib/Index/USRGeneration.cpp (+1-1) - (modified) clang/lib/Lex/Lexer.cpp (+10-11) - (modified) clang/lib/Lex/MacroInfo.cpp (+2-4) - (modified) clang/lib/Lex/Preprocessor.cpp (+1-1) - (modified) clang/lib/Parse/ParseStmt.cpp (+1-1) - (modified) clang/lib/Parse/ParseStmtAsm.cpp (+3-6) - (modified) clang/lib/Rewrite/Rewriter.cpp (+1-1) - (modified) clang/lib/Sema/CodeCompleteConsumer.cpp (+2-2) - (modified) clang/lib/Sema/SemaDecl.cpp (+1-1) - (modified) clang/lib/Sema/SemaObjCProperty.cpp (+1-1) - (modified) clang/lib/Serialization/ASTReader.cpp (+1-2) - (modified) clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp (+1-2) - (modified) clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp (+1-1) - (modified) clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp (+2-2) - (modified) clang/lib/Tooling/Core/Replacement.cpp (+3-4) - (modified) clang/lib/Tooling/Refactoring/AtomicChange.cpp (+1-1) - (modified) clang/lib/Tooling/Transformer/SourceCode.cpp (+2-2) - (modified) clang/tools/libclang/CIndex.cpp (+10-10) - (modified) clang/tools/libclang/CIndexHigh.cpp (+3-3) - (modified) clang/tools/libclang/CXIndexDataConsumer.cpp (+3-3) - (modified) clang/tools/libclang/CXSourceLocation.cpp (+2-2) - (modified) clang/unittests/Lex/LexerTest.cpp (+3-4) ``````````diff diff --git a/clang/include/clang/Basic/SourceLocation.h b/clang/include/clang/Basic/SourceLocation.h index 7a0f5ba8d1270..14543cc41a38e 100644 --- a/clang/include/clang/Basic/SourceLocation.h +++ b/clang/include/clang/Basic/SourceLocation.h @@ -70,6 +70,8 @@ class FileID { int getOpaqueValue() const { return ID; } }; +using FileIDAndOffset = std::pair<FileID, unsigned>; + /// Encodes a location in the source. The SourceManager can decode this /// to get at the full include stack, line and column information. /// @@ -403,7 +405,7 @@ class FullSourceLoc : public SourceLocation { /// pair, after walking through all expansion records. /// /// \see SourceManager::getDecomposedExpansionLoc - std::pair<FileID, unsigned> getDecomposedExpansionLoc() const; + FileIDAndOffset getDecomposedExpansionLoc() const; unsigned getSpellingLineNumber(bool *Invalid = nullptr) const; unsigned getSpellingColumnNumber(bool *Invalid = nullptr) const; @@ -424,7 +426,7 @@ class FullSourceLoc : public SourceLocation { /// /// The first element is the FileID, the second is the offset from the /// start of the buffer of the location. - std::pair<FileID, unsigned> getDecomposedLoc() const; + FileIDAndOffset getDecomposedLoc() const; bool isInSystemHeader() const; diff --git a/clang/include/clang/Basic/SourceManager.h b/clang/include/clang/Basic/SourceManager.h index cd3dac9133223..eefd4885534c8 100644 --- a/clang/include/clang/Basic/SourceManager.h +++ b/clang/include/clang/Basic/SourceManager.h @@ -795,7 +795,7 @@ class SourceManager : public RefCountedBase<SourceManager> { /// /// Used to cache results from and speed-up \c getDecomposedIncludedLoc /// function. - mutable llvm::DenseMap<FileID, std::pair<FileID, unsigned>> IncludedLocMap; + mutable llvm::DenseMap<FileID, FileIDAndOffset> IncludedLocMap; /// The key value into the IsBeforeInTUCache table. using IsBeforeInTUCacheKey = std::pair<FileID, FileID>; @@ -1269,7 +1269,7 @@ class SourceManager : public RefCountedBase<SourceManager> { /// /// The first element is the FileID, the second is the offset from the /// start of the buffer of the location. - std::pair<FileID, unsigned> getDecomposedLoc(SourceLocation Loc) const { + FileIDAndOffset getDecomposedLoc(SourceLocation Loc) const { FileID FID = getFileID(Loc); auto *Entry = getSLocEntryOrNull(FID); if (!Entry) @@ -1281,8 +1281,7 @@ class SourceManager : public RefCountedBase<SourceManager> { /// /// If the location is an expansion record, walk through it until we find /// the final location expanded. - std::pair<FileID, unsigned> - getDecomposedExpansionLoc(SourceLocation Loc) const { + FileIDAndOffset getDecomposedExpansionLoc(SourceLocation Loc) const { FileID FID = getFileID(Loc); auto *E = getSLocEntryOrNull(FID); if (!E) @@ -1299,8 +1298,7 @@ class SourceManager : public RefCountedBase<SourceManager> { /// /// If the location is an expansion record, walk through it until we find /// its spelling record. - std::pair<FileID, unsigned> - getDecomposedSpellingLoc(SourceLocation Loc) const { + FileIDAndOffset getDecomposedSpellingLoc(SourceLocation Loc) const { FileID FID = getFileID(Loc); auto *E = getSLocEntryOrNull(FID); if (!E) @@ -1314,7 +1312,7 @@ class SourceManager : public RefCountedBase<SourceManager> { /// Returns the "included/expanded in" decomposed location of the given /// FileID. - std::pair<FileID, unsigned> getDecomposedIncludedLoc(FileID FID) const; + FileIDAndOffset getDecomposedIncludedLoc(FileID FID) const; /// Returns the offset from the start of the file that the /// specified SourceLocation represents. @@ -1682,8 +1680,8 @@ class SourceManager : public RefCountedBase<SourceManager> { /// are in the same TU. The second bool is true if the first is true /// and \p LOffs is before \p ROffs. std::pair<bool, bool> - isInTheSameTranslationUnit(std::pair<FileID, unsigned> &LOffs, - std::pair<FileID, unsigned> &ROffs) const; + isInTheSameTranslationUnit(FileIDAndOffset &LOffs, + FileIDAndOffset &ROffs) const; /// \param Loc a source location in a loaded AST (of a PCH/Module file). /// \returns a FileID uniquely identifies the AST of a loaded @@ -1691,9 +1689,8 @@ class SourceManager : public RefCountedBase<SourceManager> { FileID getUniqueLoadedASTFileID(SourceLocation Loc) const; /// Determines whether the two decomposed source location is in the same TU. - bool isInTheSameTranslationUnitImpl( - const std::pair<FileID, unsigned> &LOffs, - const std::pair<FileID, unsigned> &ROffs) const; + bool isInTheSameTranslationUnitImpl(const FileIDAndOffset &LOffs, + const FileIDAndOffset &ROffs) const; /// Determines the order of 2 source locations in the "source location /// address space". @@ -1979,11 +1976,10 @@ class SourceManager : public RefCountedBase<SourceManager> { SourceLocation getSpellingLocSlowCase(SourceLocation Loc) const; SourceLocation getFileLocSlowCase(SourceLocation Loc) const; - std::pair<FileID, unsigned> + FileIDAndOffset getDecomposedExpansionLocSlowCase(const SrcMgr::SLocEntry *E) const; - std::pair<FileID, unsigned> - getDecomposedSpellingLocSlowCase(const SrcMgr::SLocEntry *E, - unsigned Offset) const; + FileIDAndOffset getDecomposedSpellingLocSlowCase(const SrcMgr::SLocEntry *E, + unsigned Offset) const; void computeMacroArgsCache(MacroArgsMap &MacroArgsCache, FileID FID) const; void associateFileChunkWithMacroArgExp(MacroArgsMap &MacroArgsCache, FileID FID, diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index e7abb18330e17..b13bdd5642977 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -248,7 +248,7 @@ RawComment *ASTContext::getRawCommentForDeclNoCacheImpl( // Decompose the location for the declaration and find the beginning of the // file buffer. - const std::pair<FileID, unsigned> DeclLocDecomp = + const FileIDAndOffset DeclLocDecomp = SourceMgr.getDecomposedLoc(RepresentativeLocForDecl); // Slow path. diff --git a/clang/lib/AST/ASTImporter.cpp b/clang/lib/AST/ASTImporter.cpp index 2b7d67f389a64..c4d20554f09ef 100644 --- a/clang/lib/AST/ASTImporter.cpp +++ b/clang/lib/AST/ASTImporter.cpp @@ -9989,7 +9989,7 @@ Expected<SourceLocation> ASTImporter::Import(SourceLocation FromLoc) { SourceManager &FromSM = FromContext.getSourceManager(); bool IsBuiltin = FromSM.isWrittenInBuiltinFile(FromLoc); - std::pair<FileID, unsigned> Decomposed = FromSM.getDecomposedLoc(FromLoc); + FileIDAndOffset Decomposed = FromSM.getDecomposedLoc(FromLoc); Expected<FileID> ToFileIDOrErr = Import(Decomposed.first, IsBuiltin); if (!ToFileIDOrErr) return ToFileIDOrErr.takeError(); diff --git a/clang/lib/AST/CommentLexer.cpp b/clang/lib/AST/CommentLexer.cpp index 804be89a8d4dd..e19c2327aebdc 100644 --- a/clang/lib/AST/CommentLexer.cpp +++ b/clang/lib/AST/CommentLexer.cpp @@ -904,7 +904,7 @@ void Lexer::lex(Token &T) { StringRef Lexer::getSpelling(const Token &Tok, const SourceManager &SourceMgr) const { SourceLocation Loc = Tok.getLocation(); - std::pair<FileID, unsigned> LocInfo = SourceMgr.getDecomposedLoc(Loc); + FileIDAndOffset LocInfo = SourceMgr.getDecomposedLoc(Loc); bool InvalidTemp = false; StringRef File = SourceMgr.getBufferData(LocInfo.first, &InvalidTemp); diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index 51d83c480c2f1..149b274f36b63 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -1356,8 +1356,7 @@ StringLiteral::getLocationOfByte(unsigned ByteNo, const SourceManager &SM, SourceLocation StrTokSpellingLoc = SM.getSpellingLoc(StrTokLoc); // Re-lex the token to get its length and original spelling. - std::pair<FileID, unsigned> LocInfo = - SM.getDecomposedLoc(StrTokSpellingLoc); + FileIDAndOffset LocInfo = SM.getDecomposedLoc(StrTokSpellingLoc); bool Invalid = false; StringRef Buffer = SM.getBufferData(LocInfo.first, &Invalid); if (Invalid) { diff --git a/clang/lib/AST/RawCommentList.cpp b/clang/lib/AST/RawCommentList.cpp index 9658c6ab3d39d..3f9edc75311d4 100644 --- a/clang/lib/AST/RawCommentList.cpp +++ b/clang/lib/AST/RawCommentList.cpp @@ -224,8 +224,8 @@ comments::FullComment *RawComment::parse(const ASTContext &Context, static bool onlyWhitespaceBetween(SourceManager &SM, SourceLocation Loc1, SourceLocation Loc2, unsigned MaxNewlinesAllowed) { - std::pair<FileID, unsigned> Loc1Info = SM.getDecomposedLoc(Loc1); - std::pair<FileID, unsigned> Loc2Info = SM.getDecomposedLoc(Loc2); + FileIDAndOffset Loc1Info = SM.getDecomposedLoc(Loc1); + FileIDAndOffset Loc2Info = SM.getDecomposedLoc(Loc2); // Question does not make sense if locations are in different files. if (Loc1Info.first != Loc2Info.first) @@ -279,8 +279,7 @@ void RawCommentList::addComment(const RawComment &RC, if (RC.isOrdinary() && !CommentOpts.ParseAllComments) return; - std::pair<FileID, unsigned> Loc = - SourceMgr.getDecomposedLoc(RC.getBeginLoc()); + FileIDAndOffset Loc = SourceMgr.getDecomposedLoc(RC.getBeginLoc()); const FileID CommentFile = Loc.first; const unsigned CommentOffset = Loc.second; diff --git a/clang/lib/Analysis/PathDiagnostic.cpp b/clang/lib/Analysis/PathDiagnostic.cpp index 962f9e9bc79cf..b1fbc3c9eff94 100644 --- a/clang/lib/Analysis/PathDiagnostic.cpp +++ b/clang/lib/Analysis/PathDiagnostic.cpp @@ -323,8 +323,8 @@ static bool compareCrossTUSourceLocs(FullSourceLoc XL, FullSourceLoc YL) { return true; if (XL.isValid() && YL.isInvalid()) return false; - std::pair<FileID, unsigned> XOffs = XL.getDecomposedLoc(); - std::pair<FileID, unsigned> YOffs = YL.getDecomposedLoc(); + FileIDAndOffset XOffs = XL.getDecomposedLoc(); + FileIDAndOffset YOffs = YL.getDecomposedLoc(); const SourceManager &SM = XL.getManager(); std::pair<bool, bool> InSameTU = SM.isInTheSameTranslationUnit(XOffs, YOffs); if (InSameTU.first) diff --git a/clang/lib/Basic/Diagnostic.cpp b/clang/lib/Basic/Diagnostic.cpp index a30bfa28eca71..ab0525e96f3ba 100644 --- a/clang/lib/Basic/Diagnostic.cpp +++ b/clang/lib/Basic/Diagnostic.cpp @@ -173,7 +173,7 @@ void DiagnosticsEngine::DiagStateMap::append(SourceManager &SrcMgr, CurDiagState = State; CurDiagStateLoc = Loc; - std::pair<FileID, unsigned> Decomp = SrcMgr.getDecomposedLoc(Loc); + FileIDAndOffset Decomp = SrcMgr.getDecomposedLoc(Loc); unsigned Offset = Decomp.second; for (File *F = getFile(SrcMgr, Decomp.first); F; Offset = F->ParentOffset, F = F->Parent) { @@ -199,7 +199,7 @@ DiagnosticsEngine::DiagStateMap::lookup(SourceManager &SrcMgr, if (Files.empty()) return FirstDiagState; - std::pair<FileID, unsigned> Decomp = SrcMgr.getDecomposedLoc(Loc); + FileIDAndOffset Decomp = SrcMgr.getDecomposedLoc(Loc); const File *F = getFile(SrcMgr, Decomp.first); return F->lookup(Decomp.second); } @@ -226,7 +226,7 @@ DiagnosticsEngine::DiagStateMap::getFile(SourceManager &SrcMgr, // We created a new File; look up the diagnostic state at the start of it and // initialize it. if (ID.isValid()) { - std::pair<FileID, unsigned> Decomp = SrcMgr.getDecomposedIncludedLoc(ID); + FileIDAndOffset Decomp = SrcMgr.getDecomposedIncludedLoc(ID); F.Parent = getFile(SrcMgr, Decomp.first); F.ParentOffset = Decomp.second; F.StateTransitions.push_back({F.Parent->lookup(Decomp.second), 0}); @@ -263,8 +263,7 @@ void DiagnosticsEngine::DiagStateMap::dump(SourceManager &SrcMgr, << ">: " << SrcMgr.getBufferOrFake(ID).getBufferIdentifier(); if (F.second.Parent) { - std::pair<FileID, unsigned> Decomp = - SrcMgr.getDecomposedIncludedLoc(ID); + FileIDAndOffset Decomp = SrcMgr.getDecomposedIncludedLoc(ID); assert(File.ParentOffset == Decomp.second); llvm::errs() << " parent " << File.Parent << " <FileID " << Decomp.first.getHashValue() << "> "; diff --git a/clang/lib/Basic/Sarif.cpp b/clang/lib/Basic/Sarif.cpp index ed50b73e92240..69862b73febd7 100644 --- a/clang/lib/Basic/Sarif.cpp +++ b/clang/lib/Basic/Sarif.cpp @@ -117,7 +117,7 @@ static unsigned int adjustColumnPos(FullSourceLoc Loc, unsigned int TokenLen = 0) { assert(!Loc.isInvalid() && "invalid Loc when adjusting column position"); - std::pair<FileID, unsigned> LocInfo = Loc.getDecomposedExpansionLoc(); + FileIDAndOffset LocInfo = Loc.getDecomposedExpansionLoc(); std::optional<MemoryBufferRef> Buf = Loc.getManager().getBufferOrNone(LocInfo.first); assert(Buf && "got an invalid buffer for the location's file"); diff --git a/clang/lib/Basic/SourceLocation.cpp b/clang/lib/Basic/SourceLocation.cpp index c5b9864dbb33f..3e26f75d25b10 100644 --- a/clang/lib/Basic/SourceLocation.cpp +++ b/clang/lib/Basic/SourceLocation.cpp @@ -164,7 +164,7 @@ FullSourceLoc FullSourceLoc::getExpansionLoc() const { return FullSourceLoc(SrcMgr->getExpansionLoc(*this), *SrcMgr); } -std::pair<FileID, unsigned> FullSourceLoc::getDecomposedExpansionLoc() const { +FileIDAndOffset FullSourceLoc::getDecomposedExpansionLoc() const { return SrcMgr->getDecomposedExpansionLoc(*this); } @@ -274,6 +274,6 @@ StringRef FullSourceLoc::getBufferData(bool *Invalid) const { return SrcMgr->getBufferData(SrcMgr->getFileID(*this), Invalid); } -std::pair<FileID, unsigned> FullSourceLoc::getDecomposedLoc() const { +FileIDAndOffset FullSourceLoc::getDecomposedLoc() const { return SrcMgr->getDecomposedLoc(*this); } diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp index 053e82683a4a6..a05d6c16caa32 100644 --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/lib/Basic/SourceManager.cpp @@ -267,7 +267,7 @@ void SourceManager::AddLineNote(SourceLocation Loc, unsigned LineNo, int FilenameID, bool IsFileEntry, bool IsFileExit, SrcMgr::CharacteristicKind FileKind) { - std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc); + FileIDAndOffset LocInfo = getDecomposedExpansionLoc(Loc); bool Invalid = false; SLocEntry &Entry = getSLocEntry(LocInfo.first, &Invalid); @@ -916,7 +916,7 @@ getExpansionLocSlowCase(SourceLocation Loc) const { SourceLocation SourceManager::getSpellingLocSlowCase(SourceLocation Loc) const { do { - std::pair<FileID, unsigned> LocInfo = getDecomposedLoc(Loc); + FileIDAndOffset LocInfo = getDecomposedLoc(Loc); Loc = getSLocEntry(LocInfo.first).getExpansion().getSpellingLoc(); Loc = Loc.getLocWithOffset(LocInfo.second); } while (!Loc.isFileID()); @@ -933,10 +933,8 @@ SourceLocation SourceManager::getFileLocSlowCase(SourceLocation Loc) const { return Loc; } - -std::pair<FileID, unsigned> -SourceManager::getDecomposedExpansionLocSlowCase( - const SrcMgr::SLocEntry *E) const { +FileIDAndOffset SourceManager::getDecomposedExpansionLocSlowCase( + const SrcMgr::SLocEntry *E) const { // If this is an expansion record, walk through all the expansion points. FileID FID; SourceLocation Loc; @@ -952,7 +950,7 @@ SourceManager::getDecomposedExpansionLocSlowCase( return std::make_pair(FID, Offset); } -std::pair<FileID, unsigned> +FileIDAndOffset SourceManager::getDecomposedSpellingLocSlowCase(const SrcMgr::SLocEntry *E, unsigned Offset) const { // If this is an expansion record, walk through all the expansion points. @@ -976,7 +974,7 @@ SourceManager::getDecomposedSpellingLocSlowCase(const SrcMgr::SLocEntry *E, /// found. This should not generally be used by clients. SourceLocation SourceManager::getImmediateSpellingLoc(SourceLocation Loc) const{ if (Loc.isFileID()) return Loc; - std::pair<FileID, unsigned> LocInfo = getDecomposedLoc(Loc); + FileIDAndOffset LocInfo = getDecomposedLoc(Loc); Loc = getSLocEntry(LocInfo.first).getExpansion().getSpellingLoc(); return Loc.getLocWithOffset(LocInfo.second); } @@ -1048,7 +1046,7 @@ bool SourceManager::isAtStartOfImmediateMacroExpansion(SourceLocation Loc, SourceLocation *MacroBegin) const { assert(Loc.isValid() && Loc.isMacroID() && "Expected a valid macro loc"); - std::pair<FileID, unsigned> DecompLoc = getDecomposedLoc(Loc); + FileIDAndOffset DecompLoc = getDecomposedLoc(Loc); if (DecompLoc.second > 0) return false; // Does not point at the start of expansion range. @@ -1125,7 +1123,7 @@ const char *SourceManager::getCharacterData(SourceLocation SL, bool *Invalid) const { // Note that this is a hot function in the getSpelling() path, which is // heavily used by -E mode. - std::pair<FileID, unsigned> LocInfo = getDecomposedSpellingLoc(SL); + FileIDAndOffset LocInfo = getDecomposedSpellingLoc(SL); // Note that calling 'getBuffer()' may lazily page in a source file. bool CharDataInvalid = false; @@ -1204,14 +1202,14 @@ static bool isInvalid(LocType Loc, bool *Invalid) { unsigned SourceManager::getSpellingColumnNumber(SourceLocation Loc, bool *Invalid) const { if (isInvalid(Loc, Invalid)) return 0; - std::pair<FileID, unsigned> LocInfo = getDecomposedSpellingLoc(Loc); + FileIDAndOffset LocInfo = getDecomposedSpellingLoc(Loc); return getColumnNumber(LocInfo.first, LocInfo.second, Invalid); } unsigned SourceManager::getExpansionColumnNumber(SourceLocation Loc, bool *Invalid) const { if (isInvalid(Loc, Invalid)) return 0; - std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc); + FileIDAndOffset LocInfo = getDecomposedExpansionLoc(Loc); return getColumnNumber(LocInfo.first, LocInfo.second, Invalid); } @@ -1412,13 +1410,13 @@ unsigned SourceManager::getLineNumber(FileID FID, unsigned FilePos, unsigned SourceManager::getSpellingLineNumber(SourceLocation Loc, bool *Invalid) const { if (isInvalid(Loc, Invalid)) return 0; - std::pair<FileID, unsigned> LocInfo = getDecomposedSpellingLoc(Loc); + FileIDAndOffset LocInfo = getDecomposedSpellingLoc(Loc); return getLineNumber(LocInfo.first, LocInfo.second); } unsigned SourceManager::getExpansionLineNumber(SourceLocation Loc, bool *Invalid) const { if (isInvalid(Loc, Invalid)) return 0; - std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc); + FileIDAndOffset LocInfo = getDecomposedExpansionLoc(Loc); return getLineNumber(LocInfo.first, LocInfo.second); } unsigned SourceManager::getPresumedLineNumber(SourceLocation Loc, @@ -1439,7 +1437,7 @@ unsigned SourceManager::getPresumedLineNumber(SourceLocation Loc, SrcMgr::CharacteristicKind SourceManager::getFileCharacteristic(SourceLocation Loc) const { assert(Loc.isValid() && "Can't get file characteristic of invalid loc!"); - std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc); + FileIDAndOffset LocInfo = getDecomposedExpansionLoc(Loc); const SLocEntry *SEntry = getSLocEntryForFile(LocInfo.first); if (!SEntry) return C_User; @@ -1488,7 +1486,7 @@ PresumedLoc SourceManager::getPresumedLoc(SourceLocation Loc, if (Loc.isInvalid()) return PresumedLoc(); // Presumed locations are always for expansion points. - std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc); + FileIDAndOffset LocInfo = getDecomposedExpansionLoc(Loc); bool Invalid = false; const SLocEntry &Entry = getSLocEntry(LocInfo.first, &Invalid); @@ -1563,7 +1561,7 @@ bool SourceManager::isInMainFile(SourceLocation Loc) const { if (Loc.isInvalid()) return false; // Presumed locations are always for expansion points. - std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc); + FileIDAndOffset LocInfo = getDecomposedExpansionLoc... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/145711 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits