diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h index 41fa04183c..202a7c55aa 100644 --- a/include/clang/Basic/SourceManager.h +++ b/include/clang/Basic/SourceManager.h @@ -409,15 +409,6 @@ public: return getContentCache(FID)->Entry; } - /// getCanonicalFileID - Return the canonical FileID for a SourceLocation. - /// A file can have multiple FileIDs if it is large enough to be broken - /// into multiple chunks. This method returns the unique FileID without - /// chunk information for a given SourceLocation. Use this method when - /// you want to compare FileIDs across SourceLocations. - FileID getCanonicalFileID(SourceLocation SpellingLoc) const { - return getDecomposedFileLoc(SpellingLoc).first; - } - /// getDecomposedFileLoc - Decompose the specified file location into a raw /// FileID + Offset pair. The first element is the FileID, the second is the /// offset from the start of the buffer of the location. @@ -437,7 +428,13 @@ public: return std::make_pair(FileID::Create(Loc.getChunkID()-ChunkNo), Offset); } - + + /// getFileID - Return the FileID for a SourceLocation. + /// + FileID getFileID(SourceLocation SpellingLoc) const { + return getDecomposedFileLoc(SpellingLoc).first; + } + /// getFullFilePos - This (efficient) method returns the offset from the start /// of the file that the specified spelling SourceLocation represents. This /// returns the location of the actual character data, not the instantiation @@ -449,13 +446,13 @@ public: /// isFromSameFile - Returns true if both SourceLocations correspond to /// the same file. bool isFromSameFile(SourceLocation Loc1, SourceLocation Loc2) const { - return getCanonicalFileID(Loc1) == getCanonicalFileID(Loc2); + return getFileID(Loc1) == getFileID(Loc2); } /// isFromMainFile - Returns true if the file of provided SourceLocation is /// the main file. bool isFromMainFile(SourceLocation Loc) const { - return getCanonicalFileID(Loc) == getMainFileID(); + return getFileID(Loc) == getMainFileID(); } /// isInSystemHeader - Returns if a SourceLocation is in a system header. diff --git a/lib/Basic/SourceLocation.cpp b/lib/Basic/SourceLocation.cpp index 66ad720bb3..f0c8274de9 100644 --- a/lib/Basic/SourceLocation.cpp +++ b/lib/Basic/SourceLocation.cpp @@ -39,7 +39,7 @@ SourceRange SourceRange::ReadVal(llvm::Deserializer& D) { FileID FullSourceLoc::getFileID() const { assert(isValid()); - return SrcMgr->getCanonicalFileID(*this); + return SrcMgr->getFileID(*this); } @@ -106,7 +106,7 @@ const char *FullSourceLoc::getCharacterData() const { const llvm::MemoryBuffer* FullSourceLoc::getBuffer() const { assert(isValid()); - return SrcMgr->getBuffer(SrcMgr->getCanonicalFileID(*this)); + return SrcMgr->getBuffer(SrcMgr->getFileID(*this)); } void FullSourceLoc::dump() const { diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 5e4a95cc0c..1aab4bb5d7 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -51,7 +51,7 @@ llvm::DICompileUnit CGDebugInfo::getOrCreateCompileUnit(SourceLocation Loc) { return llvm::DICompileUnit(); SourceManager &SM = M->getContext().getSourceManager(); - const FileEntry *FE = SM.getFileEntryForID(SM.getCanonicalFileID(Loc)); + const FileEntry *FE = SM.getFileEntryForID(SM.getFileID(Loc)); if (FE == 0) return llvm::DICompileUnit(); // See if this compile unit has been used before. diff --git a/lib/Driver/HTMLDiagnostics.cpp b/lib/Driver/HTMLDiagnostics.cpp index 81cedba557..2772cf3422 100644 --- a/lib/Driver/HTMLDiagnostics.cpp +++ b/lib/Driver/HTMLDiagnostics.cpp @@ -26,7 +26,6 @@ #include "llvm/Support/raw_ostream.h" #include "llvm/System/Path.h" #include - using namespace clang; //===----------------------------------------------------------------------===// @@ -132,8 +131,8 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) { FullSourceLoc L = I->getLocation().getInstantiationLoc(); if (FID.isInvalid()) { - FID = SMgr.getCanonicalFileID(L); - } else if (SMgr.getCanonicalFileID(L) != FID) + FID = SMgr.getFileID(L); + } else if (SMgr.getFileID(L) != FID) return; // FIXME: Emit a warning? // Check the source ranges. @@ -142,19 +141,13 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) { SourceLocation L = SMgr.getInstantiationLoc(RI->getBegin()); - if (!L.isFileID()) - return; // FIXME: Emit a warning? - - if (SMgr.getCanonicalFileID(L) != FID) + if (!L.isFileID() || SMgr.getFileID(L) != FID) return; // FIXME: Emit a warning? L = SMgr.getInstantiationLoc(RI->getEnd()); - if (!L.isFileID()) + if (!L.isFileID() || SMgr.getFileID(L) != FID) return; // FIXME: Emit a warning? - - if (SMgr.getCanonicalFileID(L) != FID) - return; // FIXME: Emit a warning? } } @@ -336,10 +329,10 @@ void HTMLDiagnostics::HandlePiece(Rewriter& R, FileID BugFileID, SourceManager &SM = R.getSourceMgr(); FullSourceLoc LPos = Pos.getInstantiationLoc(); - FileID FID = SM.getCanonicalFileID(LPos); + FileID FID = SM.getFileID(LPos); assert(&LPos.getManager() == &SM && "SourceManagers are different!"); - if (SM.getCanonicalFileID(LPos) != BugFileID) + if (SM.getFileID(LPos) != BugFileID) return; const llvm::MemoryBuffer *Buf = SM.getBuffer(FID); @@ -469,8 +462,8 @@ void HTMLDiagnostics::HighlightRange(Rewriter& R, FileID BugFileID, if (EndLineNo < StartLineNo) return; - if (SM.getCanonicalFileID(InstantiationStart) != BugFileID || - SM.getCanonicalFileID(InstantiationEnd) != BugFileID) + if (SM.getFileID(InstantiationStart) != BugFileID || + SM.getFileID(InstantiationEnd) != BugFileID) return; // Compute the column number of the end. diff --git a/lib/Driver/PlistDiagnostics.cpp b/lib/Driver/PlistDiagnostics.cpp index 0b2ca52f11..9b7da48916 100644 --- a/lib/Driver/PlistDiagnostics.cpp +++ b/lib/Driver/PlistDiagnostics.cpp @@ -51,20 +51,18 @@ clang::CreatePlistDiagnosticClient(const std::string& s, return new PlistDiagnostics(s); } -static void AddFID(FIDMap &FIDs, - llvm::SmallVectorImpl &V, +static void AddFID(FIDMap &FIDs, llvm::SmallVectorImpl &V, SourceManager& SM, SourceLocation L) { - FileID FID = SM.getCanonicalFileID(SM.getInstantiationLoc(L)); + FileID FID = SM.getFileID(SM.getInstantiationLoc(L)); FIDMap::iterator I = FIDs.find(FID); if (I != FIDs.end()) return; FIDs[FID] = V.size(); V.push_back(FID); } -static unsigned GetFID(const FIDMap& FIDs, - SourceManager& SM, SourceLocation L) { - FileID FID = SM.getCanonicalFileID(SM.getInstantiationLoc(L)); +static unsigned GetFID(const FIDMap& FIDs, SourceManager& SM, SourceLocation L){ + FileID FID = SM.getFileID(SM.getInstantiationLoc(L)); FIDMap::const_iterator I = FIDs.find(FID); assert(I != FIDs.end()); return I->second; @@ -178,7 +176,7 @@ void PlistDiagnostics::HandlePathDiagnostic(const PathDiagnostic* D) { AddFID(FM, Fids, SM, I->getLocation()); for (PathDiagnosticPiece::range_iterator RI=I->ranges_begin(), - RE=I->ranges_end(); RI!=RE; ++RI) { + RE=I->ranges_end(); RI!=RE; ++RI) { AddFID(FM, Fids, SM, RI->getBegin()); AddFID(FM, Fids, SM, RI->getEnd()); } @@ -229,7 +227,8 @@ void PlistDiagnostics::HandlePathDiagnostic(const PathDiagnostic* D) { o << " \n"; // Output the bug type and bug category. - o << " description\n " << D->getDescription() << "\n" + o << " description\n " << D->getDescription() + << "\n" " category\n " << D->getCategory() << "\n"; // Finish. diff --git a/lib/Driver/TextDiagnosticPrinter.cpp b/lib/Driver/TextDiagnosticPrinter.cpp index 4080b748ad..71a5e40107 100644 --- a/lib/Driver/TextDiagnosticPrinter.cpp +++ b/lib/Driver/TextDiagnosticPrinter.cpp @@ -48,13 +48,13 @@ void TextDiagnosticPrinter::HighlightRange(const SourceRange &R, SourceMgr.getInstantiationLoc(R.getBegin()); unsigned StartLineNo = SourceMgr.getLineNumber(InstantiationStart); if (StartLineNo > LineNo || - SourceMgr.getCanonicalFileID(InstantiationStart) != FID) + SourceMgr.getFileID(InstantiationStart) != FID) return; // No intersection. SourceLocation InstantiationEnd = SourceMgr.getInstantiationLoc(R.getEnd()); unsigned EndLineNo = SourceMgr.getLineNumber(InstantiationEnd); if (EndLineNo < LineNo || - SourceMgr.getCanonicalFileID(InstantiationEnd) != FID) + SourceMgr.getFileID(InstantiationEnd) != FID) return; // No intersection. // Compute the column number of the start. diff --git a/lib/Lex/Lexer.cpp b/lib/Lex/Lexer.cpp index 9280526d22..19b3121c64 100644 --- a/lib/Lex/Lexer.cpp +++ b/lib/Lex/Lexer.cpp @@ -156,7 +156,7 @@ Lexer *Lexer::Create_PragmaLexer(SourceLocation SpellingLoc, SourceManager &SM = PP.getSourceManager(); // Create the lexer as if we were going to lex the file normally. - FileID SpellingFID = SM.getCanonicalFileID(SpellingLoc); + FileID SpellingFID = SM.getFileID(SpellingLoc); Lexer *L = new Lexer(SpellingFID, PP); // Now that the lexer is created, change the start/end locations so that we diff --git a/lib/Rewrite/HTMLRewrite.cpp b/lib/Rewrite/HTMLRewrite.cpp index 68a53d364b..040146620d 100644 --- a/lib/Rewrite/HTMLRewrite.cpp +++ b/lib/Rewrite/HTMLRewrite.cpp @@ -33,8 +33,8 @@ void html::HighlightRange(Rewriter &R, SourceLocation B, SourceLocation E, SourceManager &SM = R.getSourceMgr(); B = SM.getInstantiationLoc(B); E = SM.getInstantiationLoc(E); - FileID FID = SM.getCanonicalFileID(B); - assert(SM.getCanonicalFileID(E) == FID && "B/E not in the same file!"); + FileID FID = SM.getFileID(B); + assert(SM.getFileID(E) == FID && "B/E not in the same file!"); unsigned BOffset = SM.getFullFilePos(B); unsigned EOffset = SM.getFullFilePos(E);