diff options
author | Chris Lattner <sabre@nondot.org> | 2009-01-16 07:36:28 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-01-16 07:36:28 +0000 |
commit | f7cf85b330bedd2877e1371fb0a83e99751ae162 (patch) | |
tree | 6674dd8f06d3c395ab61ad9770934c49572e200c | |
parent | 88054dee0402e4d3c1f64e6b697acc47195c0d72 (diff) |
more SourceLocation lexicon change: instead of referring to the
"logical" location, refer to the "instantiation" location.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62316 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | Driver/DiagChecker.cpp | 6 | ||||
-rw-r--r-- | Driver/PrintPreprocessedOutput.cpp | 10 | ||||
-rw-r--r-- | Driver/RewriteBlocks.cpp | 2 | ||||
-rw-r--r-- | Driver/RewriteMacros.cpp | 4 | ||||
-rw-r--r-- | Driver/RewriteObjC.cpp | 2 | ||||
-rw-r--r-- | include/clang/Basic/SourceLocation.h | 6 | ||||
-rw-r--r-- | include/clang/Basic/SourceManager.h | 41 | ||||
-rw-r--r-- | lib/Analysis/BugReporter.cpp | 23 | ||||
-rw-r--r-- | lib/Analysis/CFRefCount.cpp | 6 | ||||
-rw-r--r-- | lib/Analysis/GRExprEngineInternalChecks.cpp | 5 | ||||
-rw-r--r-- | lib/Basic/SourceLocation.cpp | 22 | ||||
-rw-r--r-- | lib/Basic/SourceManager.cpp | 4 | ||||
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 24 | ||||
-rw-r--r-- | lib/CodeGen/CGDecl.cpp | 3 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenModule.cpp | 2 | ||||
-rw-r--r-- | lib/Driver/HTMLDiagnostics.cpp | 46 | ||||
-rw-r--r-- | lib/Driver/PlistDiagnostics.cpp | 9 | ||||
-rw-r--r-- | lib/Driver/TextDiagnosticPrinter.cpp | 27 | ||||
-rw-r--r-- | lib/Lex/Lexer.cpp | 8 | ||||
-rw-r--r-- | lib/Lex/PPMacroExpansion.cpp | 6 | ||||
-rw-r--r-- | lib/Lex/Preprocessor.cpp | 4 | ||||
-rw-r--r-- | lib/Parse/ParseStmt.cpp | 4 | ||||
-rw-r--r-- | lib/Rewrite/HTMLRewrite.cpp | 10 |
23 files changed, 134 insertions, 140 deletions
diff --git a/Driver/DiagChecker.cpp b/Driver/DiagChecker.cpp index 6f4cd7c509..8fa827ab19 100644 --- a/Driver/DiagChecker.cpp +++ b/Driver/DiagChecker.cpp @@ -167,7 +167,7 @@ static bool PrintProblem(SourceManager &SourceMgr, for (const_diag_iterator I = diag_begin, E = diag_end; I != E; ++I) fprintf(stderr, " Line %d: %s\n", - SourceMgr.getLogicalLineNumber(I->first), + SourceMgr.getInstantiationLineNumber(I->first), I->second.c_str()); return true; @@ -185,12 +185,12 @@ static bool CompareDiagLists(SourceManager &SourceMgr, DiagList DiffList; for (const_diag_iterator I = d1_begin, E = d1_end; I != E; ++I) { - unsigned LineNo1 = SourceMgr.getLogicalLineNumber(I->first); + unsigned LineNo1 = SourceMgr.getInstantiationLineNumber(I->first); const std::string &Diag1 = I->second; bool Found = false; for (const_diag_iterator II = d2_begin, IE = d2_end; II != IE; ++II) { - unsigned LineNo2 = SourceMgr.getLogicalLineNumber(II->first); + unsigned LineNo2 = SourceMgr.getInstantiationLineNumber(II->first); if (LineNo1 != LineNo2) continue; const std::string &Diag2 = II->second; diff --git a/Driver/PrintPreprocessedOutput.cpp b/Driver/PrintPreprocessedOutput.cpp index 8c2ea707d8..f5bde7c7c6 100644 --- a/Driver/PrintPreprocessedOutput.cpp +++ b/Driver/PrintPreprocessedOutput.cpp @@ -103,7 +103,7 @@ void PrintPPOutputPPCallbacks::WriteLineInfo(unsigned LineNo, /// #line directive. This returns false if already at the specified line, true /// if some newlines were emitted. bool PrintPPOutputPPCallbacks::MoveToLine(SourceLocation Loc) { - unsigned LineNo = PP.getSourceManager().getLogicalLineNumber(Loc); + unsigned LineNo = PP.getSourceManager().getInstantiationLineNumber(Loc); if (DisableLineMarkers) { if (LineNo == CurLine) return false; @@ -124,7 +124,7 @@ bool PrintPPOutputPPCallbacks::MoveToLine(SourceLocation Loc) { if (LineNo-CurLine == 1) OS << '\n'; else if (LineNo == CurLine) - return false; // Spelling line moved, but logical line didn't. + return false; // Spelling line moved, but instantiation line didn't. else { const char *NewLines = "\n\n\n\n\n\n\n\n"; OS.write(NewLines, LineNo-CurLine); @@ -157,7 +157,7 @@ void PrintPPOutputPPCallbacks::FileChanged(SourceLocation Loc, // strange behavior. } - Loc = SourceMgr.getLogicalLoc(Loc); + Loc = SourceMgr.getInstantiationLoc(Loc); CurLine = SourceMgr.getLineNumber(Loc); if (DisableLineMarkers) return; @@ -200,7 +200,7 @@ void PrintPPOutputPPCallbacks::Ident(SourceLocation Loc, const std::string &S) { /// is called for the first token on each new line. If this really is the start /// of a new logical line, handle it and return true, otherwise return false. /// This may not be the start of a logical line because the "start of line" -/// marker is set for spelling lines, not logical ones. +/// marker is set for spelling lines, not instantiation ones. bool PrintPPOutputPPCallbacks::HandleFirstTokOnLine(Token &Tok) { // Figure out what line we went to and insert the appropriate number of // newline characters. @@ -210,7 +210,7 @@ bool PrintPPOutputPPCallbacks::HandleFirstTokOnLine(Token &Tok) { // Print out space characters so that the first token on a line is // indented for easy reading. const SourceManager &SourceMgr = PP.getSourceManager(); - unsigned ColNo = SourceMgr.getLogicalColumnNumber(Tok.getLocation()); + unsigned ColNo = SourceMgr.getInstantiationColumnNumber(Tok.getLocation()); // This hack prevents stuff like: // #define HASH # diff --git a/Driver/RewriteBlocks.cpp b/Driver/RewriteBlocks.cpp index 1e7a6af91d..e4e470a447 100644 --- a/Driver/RewriteBlocks.cpp +++ b/Driver/RewriteBlocks.cpp @@ -341,7 +341,7 @@ void RewriteBlocks::HandleTopLevelDecl(Decl *D) { // #included file. If the former, rewrite it now. If the later, check to see // if we rewrote the #include/#import. SourceLocation Loc = D->getLocation(); - Loc = SM->getLogicalLoc(Loc); + Loc = SM->getInstantiationLoc(Loc); // If this is for a builtin, ignore it. if (Loc.isInvalid()) return; diff --git a/Driver/RewriteMacros.cpp b/Driver/RewriteMacros.cpp index d10bf55853..fb423c6413 100644 --- a/Driver/RewriteMacros.cpp +++ b/Driver/RewriteMacros.cpp @@ -113,7 +113,7 @@ void clang::RewriteMacrosInInput(Preprocessor &PP,const std::string &InFileName, // that aren't in the preprocessed view, we have macros that expand to no // tokens, or macro arguments etc. while (RawTok.isNot(tok::eof) || PPTok.isNot(tok::eof)) { - SourceLocation PPLoc = SM.getLogicalLoc(PPTok.getLocation()); + SourceLocation PPLoc = SM.getInstantiationLoc(PPTok.getLocation()); // If PPTok is from a different source file, ignore it. if (!SM.isFromMainFile(PPLoc)) { @@ -198,7 +198,7 @@ void clang::RewriteMacrosInInput(Preprocessor &PP,const std::string &InFileName, while (PPOffs < RawOffs) { Expansion += ' ' + PP.getSpelling(PPTok); PP.Lex(PPTok); - PPLoc = SM.getLogicalLoc(PPTok.getLocation()); + PPLoc = SM.getInstantiationLoc(PPTok.getLocation()); PPOffs = SM.getFullFilePos(PPLoc); } Expansion += ' '; diff --git a/Driver/RewriteObjC.cpp b/Driver/RewriteObjC.cpp index ec0018a11c..cee66f73b1 100644 --- a/Driver/RewriteObjC.cpp +++ b/Driver/RewriteObjC.cpp @@ -557,7 +557,7 @@ void RewriteObjC::HandleTopLevelDecl(Decl *D) { // #included file. If the former, rewrite it now. If the later, check to see // if we rewrote the #include/#import. SourceLocation Loc = D->getLocation(); - Loc = SM->getLogicalLoc(Loc); + Loc = SM->getInstantiationLoc(Loc); // If this is for a builtin, ignore it. if (Loc.isInvalid()) return; diff --git a/include/clang/Basic/SourceLocation.h b/include/clang/Basic/SourceLocation.h index 97080d7442..a77eadd271 100644 --- a/include/clang/Basic/SourceLocation.h +++ b/include/clang/Basic/SourceLocation.h @@ -236,15 +236,15 @@ public: return *SrcMgr; } - FullSourceLoc getLogicalLoc() const; + FullSourceLoc getInstantiationLoc() const; FullSourceLoc getSpellingLoc() const; FullSourceLoc getIncludeLoc() const; unsigned getLineNumber() const; unsigned getColumnNumber() const; - unsigned getLogicalLineNumber() const; - unsigned getLogicalColumnNumber() const; + unsigned getInstantiationLineNumber() const; + unsigned getInstantiationColumnNumber() const; unsigned getSpellingLineNumber() const; unsigned getSpellingColumnNumber() const; diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h index f7e160deeb..1eac4f15de 100644 --- a/include/clang/Basic/SourceManager.h +++ b/include/clang/Basic/SourceManager.h @@ -121,9 +121,9 @@ namespace SrcMgr { /// is a byte offset from the start of this. /// /// FileID's are used to compute the location of a character in memory as well - /// as the logical source location, which can be differ from the spelling - /// location. It is different when #line's are active or when macros have - /// been expanded. + /// as the instantiation source location, which can be differ from the + /// spelling location. It is different when #line's are active or when macros + /// have been expanded. /// /// Each FileID has include stack information, indicating where it came from. /// For the primary translation unit, it comes from SourceLocation() aka 0. @@ -228,13 +228,12 @@ namespace clang { /// files and assigns unique FileID's for each unique #include chain. /// /// The SourceManager can be queried for information about SourceLocation -/// objects, turning them into either spelling or logical locations. Spelling -/// locations represent where the bytes corresponding to a token came from and -/// logical locations represent where the location is in the user's view. In -/// the case of a macro expansion, for example, the spelling location indicates -/// where the expanded token came from and the logical location specifies where -/// it was expanded. Logical locations are also influenced by #line directives, -/// etc. +/// objects, turning them into either spelling or instantiation locations. +/// Spelling locations represent where the bytes corresponding to a token came +/// from and instantiation locations represent where the location is in the +/// user's view. In the case of a macro expansion, for example, the spelling +/// location indicates where the expanded token came from and the instantiation +/// location specifies where it was expanded. class SourceManager { /// FileInfos - Memoized information about all of the files tracked by this /// SourceManager. This set allows us to merge ContentCache entries based @@ -338,7 +337,7 @@ public: /// SourceLocation. If this is a macro expansion, this transparently figures /// out which file includes the file being expanded into. SourceLocation getIncludeLoc(SourceLocation ID) const { - return getFIDInfo(getLogicalLoc(ID).getFileID())->getIncludeLoc(); + return getFIDInfo(getInstantiationLoc(ID).getFileID())->getIncludeLoc(); } /// getCharacterData - Return a pointer to the start of the specified location @@ -348,15 +347,15 @@ public: /// getColumnNumber - Return the column # for the specified file position. /// This is significantly cheaper to compute than the line number. This /// returns zero if the column number isn't known. This may only be called on - /// a file sloc, so you must choose a spelling or logical location before - /// calling this method. + /// a file sloc, so you must choose a spelling or instantiation location + /// before calling this method. unsigned getColumnNumber(SourceLocation Loc) const; unsigned getSpellingColumnNumber(SourceLocation Loc) const { return getColumnNumber(getSpellingLoc(Loc)); } - unsigned getLogicalColumnNumber(SourceLocation Loc) const { - return getColumnNumber(getLogicalLoc(Loc)); + unsigned getInstantiationColumnNumber(SourceLocation Loc) const { + return getColumnNumber(getInstantiationLoc(Loc)); } @@ -366,8 +365,8 @@ public: /// about to emit a diagnostic. unsigned getLineNumber(SourceLocation Loc) const; - unsigned getLogicalLineNumber(SourceLocation Loc) const { - return getLineNumber(getLogicalLoc(Loc)); + unsigned getInstantiationLineNumber(SourceLocation Loc) const { + return getLineNumber(getInstantiationLoc(Loc)); } unsigned getSpellingLineNumber(SourceLocation Loc) const { return getLineNumber(getSpellingLoc(Loc)); @@ -378,9 +377,9 @@ public: /// etc. const char *getSourceName(SourceLocation Loc) const; - /// Given a SourceLocation object, return the logical location referenced by - /// the ID. This logical location is subject to #line directives, etc. - SourceLocation getLogicalLoc(SourceLocation Loc) const { + /// Given a SourceLocation object, return the instantiation location + /// referenced by the ID. + SourceLocation getInstantiationLoc(SourceLocation Loc) const { // File locations work. if (Loc.isFileID()) return Loc; @@ -450,7 +449,7 @@ public: /// 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 logical file + /// returns the location of the actual character data, not the instantiation /// position. unsigned getFullFilePos(SourceLocation SpellingLoc) const { return getDecomposedFileLoc(SpellingLoc).second; diff --git a/lib/Analysis/BugReporter.cpp b/lib/Analysis/BugReporter.cpp index e6840c3ad2..adb3325f53 100644 --- a/lib/Analysis/BugReporter.cpp +++ b/lib/Analysis/BugReporter.cpp @@ -94,7 +94,7 @@ static void ExecutionContinues(std::ostringstream& os, SourceManager& SMgr, os << ' '; os << "Execution continues on line " - << SMgr.getLogicalLineNumber(S->getLocStart()) << '.'; + << SMgr.getInstantiationLineNumber(S->getLocStart()) << '.'; } @@ -534,7 +534,7 @@ void GRBugReporter::GeneratePathDiagnostic(PathDiagnostic& PD, std::ostringstream os; os << "Control jumps to line " - << SMgr.getLogicalLineNumber(S->getLocStart()) << ".\n"; + << SMgr.getInstantiationLineNumber(S->getLocStart()) << ".\n"; PD.push_front(new PathDiagnosticPiece(L, os.str())); break; @@ -548,23 +548,17 @@ void GRBugReporter::GeneratePathDiagnostic(PathDiagnostic& PD, if (Stmt* S = Dst->getLabel()) switch (S->getStmtClass()) { - - default: { + default: os << "No cases match in the switch statement. " "Control jumps to line " - << SMgr.getLogicalLineNumber(S->getLocStart()) << ".\n"; - break; - } - - case Stmt::DefaultStmtClass: { + << SMgr.getInstantiationLineNumber(S->getLocStart()) << ".\n"; + break; + case Stmt::DefaultStmtClass: os << "Control jumps to the 'default' case at line " - << SMgr.getLogicalLineNumber(S->getLocStart()) << ".\n"; - + << SMgr.getInstantiationLineNumber(S->getLocStart()) << ".\n"; break; - } case Stmt::CaseStmtClass: { - os << "Control jumps to 'case "; CaseStmt* Case = cast<CaseStmt>(S); @@ -602,10 +596,9 @@ void GRBugReporter::GeneratePathDiagnostic(PathDiagnostic& PD, } os << ":' at line " - << SMgr.getLogicalLineNumber(S->getLocStart()) << ".\n"; + << SMgr.getInstantiationLineNumber(S->getLocStart()) << ".\n"; break; - } } else { diff --git a/lib/Analysis/CFRefCount.cpp b/lib/Analysis/CFRefCount.cpp index d2d7ab8d04..af96c0672b 100644 --- a/lib/Analysis/CFRefCount.cpp +++ b/lib/Analysis/CFRefCount.cpp @@ -2541,7 +2541,7 @@ PathDiagnosticPiece* CFRefReport::getEndPath(BugReporter& br, Stmt* FirstStmt = cast<PostStmt>(AllocNode->getLocation()).getStmt(); SourceManager& SMgr = BR.getContext().getSourceManager(); - unsigned AllocLine = SMgr.getLogicalLineNumber(FirstStmt->getLocStart()); + unsigned AllocLine =SMgr.getInstantiationLineNumber(FirstStmt->getLocStart()); // Get the leak site. We may have multiple ExplodedNodes (one with the // leak) that occur on the same line number; if the node with the leak @@ -2559,7 +2559,7 @@ PathDiagnosticPiece* CFRefReport::getEndPath(BugReporter& br, Stmt* S = getStmt(BR); // This is the statement where the leak occured. assert (S); - unsigned EndLine = SMgr.getLogicalLineNumber(S->getLocStart()); + unsigned EndLine = SMgr.getInstantiationLineNumber(S->getLocStart()); // Look in the *trimmed* graph at the immediate predecessor of EndN. Does // it occur on the same line? @@ -2574,7 +2574,7 @@ PathDiagnosticPiece* CFRefReport::getEndPath(BugReporter& br, Stmt* SPred = PredPS->getStmt(); // Predecessor at same line? - if (SMgr.getLogicalLineNumber(SPred->getLocStart()) != EndLine) { + if (SMgr.getInstantiationLineNumber(SPred->getLocStart()) != EndLine) { Hint = PathDiagnosticPiece::Below; S = SPred; } diff --git a/lib/Analysis/GRExprEngineInternalChecks.cpp b/lib/Analysis/GRExprEngineInternalChecks.cpp index d32318ca7d..e7a644ce19 100644 --- a/lib/Analysis/GRExprEngineInternalChecks.cpp +++ b/lib/Analysis/GRExprEngineInternalChecks.cpp @@ -212,7 +212,8 @@ public: const CompoundLiteralExpr* CL = CR->getLiteralExpr(); os << "Address of stack memory associated with a compound literal " "declared on line " - << BR.getSourceManager().getLogicalLineNumber(CL->getLocStart()) + << BR.getSourceManager() + .getInstantiationLineNumber(CL->getLocStart()) << " returned."; R = CL->getSourceRange(); @@ -223,7 +224,7 @@ public: R = ARE->getSourceRange(); os << "Address of stack memory allocated by call to alloca() on line " - << BR.getSourceManager().getLogicalLineNumber(L) + << BR.getSourceManager().getInstantiationLineNumber(L) << " returned."; } else { diff --git a/lib/Basic/SourceLocation.cpp b/lib/Basic/SourceLocation.cpp index bb8cac2f9f..a34293177b 100644 --- a/lib/Basic/SourceLocation.cpp +++ b/lib/Basic/SourceLocation.cpp @@ -37,9 +37,9 @@ SourceRange SourceRange::ReadVal(llvm::Deserializer& D) { return SourceRange(A,B); } -FullSourceLoc FullSourceLoc::getLogicalLoc() const { +FullSourceLoc FullSourceLoc::getInstantiationLoc() const { assert (isValid()); - return FullSourceLoc(SrcMgr->getLogicalLoc(Loc), *SrcMgr); + return FullSourceLoc(SrcMgr->getInstantiationLoc(Loc), *SrcMgr); } FullSourceLoc FullSourceLoc::getSpellingLoc() const { @@ -63,14 +63,14 @@ unsigned FullSourceLoc::getColumnNumber() const { } -unsigned FullSourceLoc::getLogicalLineNumber() const { +unsigned FullSourceLoc::getInstantiationLineNumber() const { assert (isValid()); - return SrcMgr->getLogicalLineNumber(Loc); + return SrcMgr->getInstantiationLineNumber(Loc); } -unsigned FullSourceLoc::getLogicalColumnNumber() const { +unsigned FullSourceLoc::getInstantiationColumnNumber() const { assert (isValid()); - return SrcMgr->getLogicalColumnNumber(Loc); + return SrcMgr->getInstantiationColumnNumber(Loc); } unsigned FullSourceLoc::getSpellingLineNumber() const { @@ -120,15 +120,15 @@ void FullSourceLoc::dump() const { } if (isFileID()) { - // The logical and spelling pos is identical for file locs. + // The instantiation and spelling pos is identical for file locs. fprintf(stderr, "File Loc from '%s': %d: %d\n", - getSourceName(), getLogicalLineNumber(), - getLogicalColumnNumber()); + getSourceName(), getInstantiationLineNumber(), + getInstantiationColumnNumber()); } else { fprintf(stderr, "Macro Loc (\n Spelling: "); getSpellingLoc().dump(); - fprintf(stderr, " Logical: "); - getLogicalLoc().dump(); + fprintf(stderr, " Instantiation: "); + getInstantiationLoc().dump(); fprintf(stderr, ")\n"); } } diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp index 55e8c4aee7..fa0a9bb565 100644 --- a/lib/Basic/SourceManager.cpp +++ b/lib/Basic/SourceManager.cpp @@ -155,8 +155,8 @@ SourceLocation SourceManager::getInstantiationLoc(SourceLocation SpellingLoc, // where the characters are actually located. SpellingLoc = getSpellingLoc(SpellingLoc); - // Resolve InstantLoc down to a real logical location. - InstantLoc = getLogicalLoc(InstantLoc); + // Resolve InstantLoc down to a real instantiation location. + InstantLoc = getInstantiationLoc(InstantLoc); // If the last macro id is close to the currently requested location, try to diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 6176b868ea..9cbefa3d06 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -41,7 +41,7 @@ CGDebugInfo::~CGDebugInfo() { void CGDebugInfo::setLocation(SourceLocation Loc) { if (Loc.isValid()) - CurLoc = M->getContext().getSourceManager().getLogicalLoc(Loc); + CurLoc = M->getContext().getSourceManager().getInstantiationLoc(Loc); } /// getOrCreateCompileUnit - Get the compile unit from the cache or create a new @@ -157,7 +157,7 @@ llvm::DIType CGDebugInfo::CreateType(const TypedefType *Ty, llvm::DICompileUnit DefUnit = getOrCreateCompileUnit(DefLoc); SourceManager &SM = M->getContext().getSourceManager(); - uint64_t Line = SM.getLogicalLineNumber(DefLoc); + uint64_t Line = SM.getInstantiationLineNumber(DefLoc); return DebugFactory.CreateDerivedType(llvm::dwarf::DW_TAG_typedef, Unit, TyName, DefUnit, Line, 0, 0, 0, 0, Src); @@ -209,7 +209,7 @@ llvm::DIType CGDebugInfo::CreateType(const RecordType *Ty, std::string Name = Decl->getNameAsString(); llvm::DICompileUnit DefUnit = getOrCreateCompileUnit(Decl->getLocation()); - uint64_t Line = SM.getLogicalLineNumber(Decl->getLocation()); + unsigned Line = SM.getInstantiationLineNumber(Decl->getLocation()); // Records and classes and unions can all be recursive. To handle them, we @@ -247,11 +247,11 @@ llvm::DIType CGDebugInfo::CreateType(const RecordType *Ty, // Get the location for the field. SourceLocation FieldDefLoc = Field->getLocation(); llvm::DICompileUnit FieldDefUnit = getOrCreateCompileUnit(FieldDefLoc); - uint64_t FieldLine = SM.getLogicalLineNumber(FieldDefLoc); + unsigned FieldLine = SM.getInstantiationLineNumber(FieldDefLoc); // Bit size, align and offset of the type. uint64_t FieldSize = M->getContext().getTypeSize(Ty); - uint64_t FieldAlign = M->getContext().getTypeAlign(Ty); + unsigned FieldAlign = M->getContext().getTypeAlign(Ty); uint64_t FieldOffset = RL.getFieldOffset(FieldNo); // Create a DW_TAG_member node to remember the offset of this field in the @@ -305,11 +305,11 @@ llvm::DIType CGDebugInfo::CreateType(const EnumType *Ty, SourceLocation DefLoc = Decl->getLocation(); llvm::DICompileUnit DefUnit = getOrCreateCompileUnit(DefLoc); SourceManager &SM = M->getContext().getSourceManager(); - uint64_t Line = SM.getLogicalLineNumber(DefLoc); + unsigned Line = SM.getInstantiationLineNumber(DefLoc); // Size and align of the type. uint64_t Size = M->getContext().getTypeSize(Ty); - uint64_t Align = M->getContext().getTypeAlign(Ty); + unsigned Align = M->getContext().getTypeAlign(Ty); return DebugFactory.CreateCompositeType(llvm::dwarf::DW_TAG_enumeration_type, Unit, EnumName, DefUnit, Line, @@ -428,7 +428,7 @@ void CGDebugInfo::EmitFunctionStart(const char *Name, QualType ReturnType, // FIXME: Why is this using CurLoc??? llvm::DICompileUnit Unit = getOrCreateCompileUnit(CurLoc); SourceManager &SM = M->getContext().getSourceManager(); - uint64_t LineNo = SM.getLogicalLineNumber(CurLoc); + unsigned LineNo = SM.getInstantiationLineNumber(CurLoc); llvm::DISubprogram SP = DebugFactory.CreateSubprogram(Unit, Name, Name, "", Unit, LineNo, @@ -457,8 +457,8 @@ void CGDebugInfo::EmitStopPoint(llvm::Function *Fn, CGBuilderTy &Builder) { // Get the appropriate compile unit. llvm::DICompileUnit Unit = getOrCreateCompileUnit(CurLoc); - DebugFactory.InsertStopPoint(Unit, SM.getLogicalLineNumber(CurLoc), - SM.getLogicalColumnNumber(CurLoc), + DebugFactory.InsertStopPoint(Unit, SM.getInstantiationLineNumber(CurLoc), + SM.getInstantiationColumnNumber(CurLoc), Builder.GetInsertBlock()); } @@ -492,7 +492,7 @@ void CGDebugInfo::EmitDeclare(const VarDecl *Decl, unsigned Tag, // Get location information. SourceManager &SM = M->getContext().getSourceManager(); - uint64_t Line = SM.getLogicalLineNumber(Decl->getLocation()); + unsigned Line = SM.getInstantiationLineNumber(Decl->getLocation()); llvm::DICompileUnit Unit = getOrCreateCompileUnit(Decl->getLocation()); // Create the descriptor for the variable. @@ -525,7 +525,7 @@ void CGDebugInfo::EmitGlobalVariable(llvm::GlobalVariable *Var, // Create global variable debug descriptor. llvm::DICompileUnit Unit = getOrCreateCompileUnit(Decl->getLocation()); SourceManager &SM = M->getContext().getSourceManager(); - uint64_t LineNo = SM.getLogicalLineNumber(Decl->getLocation()); + unsigned LineNo = SM.getInstantiationLineNumber(Decl->getLocation()); std::string Name = Decl->getNameAsString(); diff --git a/lib/CodeGen/CGDecl.cpp b/lib/CodeGen/CGDecl.cpp index db6aae6dfd..1acebaed4b 100644 --- a/lib/CodeGen/CGDecl.cpp +++ b/lib/CodeGen/CGDecl.cpp @@ -125,7 +125,8 @@ void CodeGenFunction::EmitStaticBlockVarDecl(const VarDecl &D) { if (const AnnotateAttr *AA = D.getAttr<AnnotateAttr>()) { SourceManager &SM = CGM.getContext().getSourceManager(); llvm::Constant *Ann = - CGM.EmitAnnotateAttr(GV, AA, SM.getLogicalLineNumber(D.getLocation())); + CGM.EmitAnnotateAttr(GV, AA, + SM.getInstantiationLineNumber(D.getLocation())); CGM.AddAnnotation(Ann); } diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index 39611a08de..7856b076d2 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/lib/CodeGen/CodeGenModule.cpp @@ -591,7 +591,7 @@ void CodeGenModule::EmitGlobalVarDefinition(const VarDecl *D) { if (const AnnotateAttr *AA = D->getAttr<AnnotateAttr>()) { SourceManager &SM = Context.getSourceManager(); AddAnnotation(EmitAnnotateAttr(GV, AA, - SM.getLogicalLineNumber(D->getLocation()))); + SM.getInstantiationLineNumber(D->getLocation()))); } GV->setInitializer(Init); diff --git a/lib/Driver/HTMLDiagnostics.cpp b/lib/Driver/HTMLDiagnostics.cpp index 4fac41c1bf..c067be98f0 100644 --- a/lib/Driver/HTMLDiagnostics.cpp +++ b/lib/Driver/HTMLDiagnostics.cpp @@ -130,9 +130,8 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) { bool FileIDInitialized = false; // Verify that the entire path is from the same FileID. - for (PathDiagnostic::const_iterator I=D.begin(), E=D.end(); I != E; ++I) { - - FullSourceLoc L = I->getLocation().getLogicalLoc(); + for (PathDiagnostic::const_iterator I = D.begin(), E = D.end(); I != E; ++I) { + FullSourceLoc L = I->getLocation().getInstantiationLoc(); if (!L.isFileID()) return; // FIXME: Emit a warning? @@ -148,7 +147,7 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) { for (PathDiagnosticPiece::range_iterator RI=I->ranges_begin(), RE=I->ranges_end(); RI!=RE; ++RI) { - SourceLocation L = SMgr.getLogicalLoc(RI->getBegin()); + SourceLocation L = SMgr.getInstantiationLoc(RI->getBegin()); if (!L.isFileID()) return; // FIXME: Emit a warning? @@ -156,7 +155,7 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) { if (SMgr.getCanonicalFileID(L) != FileID) return; // FIXME: Emit a warning? - L = SMgr.getLogicalLoc(RI->getEnd()); + L = SMgr.getInstantiationLoc(RI->getEnd()); if (!L.isFileID()) return; // FIXME: Emit a warning? @@ -230,9 +229,9 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) { << html::EscapeText(Entry->getName()) << "</td></tr>\n<tr><td class=\"rowname\">Location:</td><td>" "<a href=\"#EndPath\">line " - << (*D.rbegin()).getLocation().getLogicalLineNumber() + << (*D.rbegin()).getLocation().getInstantiationLineNumber() << ", column " - << (*D.rbegin()).getLocation().getLogicalColumnNumber() + << (*D.rbegin()).getLocation().getInstantiationColumnNumber() << "</a></td></tr>\n" "<tr><td class=\"rowname\">Description:</td><td>" << D.getDescription() << "</td></tr>\n"; @@ -280,8 +279,8 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) { { std::string s; llvm::raw_string_ostream os(s); - os << "\n<!-- BUGLINE " << D.back()->getLocation().getLogicalLineNumber() - << " -->\n"; + os << "\n<!-- BUGLINE " + << D.back()->getLocation().getInstantiationLineNumber() << " -->\n"; R.InsertStrBefore(SourceLocation::getFileLoc(FileID, 0), os.str()); } @@ -344,7 +343,7 @@ void HTMLDiagnostics::HandlePiece(Rewriter& R, unsigned BugFileID, return; SourceManager& SM = R.getSourceMgr(); - FullSourceLoc LPos = Pos.getLogicalLoc(); + FullSourceLoc LPos = Pos.getInstantiationLoc(); unsigned FileID = SM.getCanonicalFileID(LPos.getLocation()); assert (&LPos.getManager() == &SM && "SourceManagers are different!"); @@ -359,11 +358,11 @@ void HTMLDiagnostics::HandlePiece(Rewriter& R, unsigned BugFileID, // of the line. unsigned ColNo = LPos.getColumnNumber(); - const char *TokLogicalPtr = LPos.getCharacterData(); - const char *LineStart = TokLogicalPtr-ColNo; + const char *TokInstantiationPtr = LPos.getCharacterData(); + const char *LineStart = TokInstantiationPtr-ColNo; // Only compute LineEnd if we display below a line. - const char *LineEnd = TokLogicalPtr; + const char *LineEnd = TokInstantiationPtr; if (P.getDisplayHint() == PathDiagnosticPiece::Below) { const char* FileEnd = Buf->getBufferEnd(); @@ -376,7 +375,7 @@ void HTMLDiagnostics::HandlePiece(Rewriter& R, unsigned BugFileID, unsigned PosNo = 0; - for (const char* c = LineStart; c != TokLogicalPtr; ++c) + for (const char* c = LineStart; c != TokInstantiationPtr; ++c) PosNo += *c == '\t' ? 8 : 1; // Create the html for the message. @@ -471,21 +470,21 @@ void HTMLDiagnostics::HighlightRange(Rewriter& R, unsigned BugFileID, SourceManager& SM = R.getSourceMgr(); - SourceLocation LogicalStart = SM.getLogicalLoc(Range.getBegin()); - unsigned StartLineNo = SM.getLineNumber(LogicalStart); + SourceLocation InstantiationStart = SM.getInstantiationLoc(Range.getBegin()); + unsigned StartLineNo = SM.getLineNumber(InstantiationStart); - SourceLocation LogicalEnd = SM.getLogicalLoc(Range.getEnd()); - unsigned EndLineNo = SM.getLineNumber(LogicalEnd); + SourceLocation InstantiationEnd = SM.getInstantiationLoc(Range.getEnd()); + unsigned EndLineNo = SM.getLineNumber(InstantiationEnd); if (EndLineNo < StartLineNo) return; - if (SM.getCanonicalFileID(LogicalStart) != BugFileID || - SM.getCanonicalFileID(LogicalEnd) != BugFileID) + if (SM.getCanonicalFileID(InstantiationStart) != BugFileID || + SM.getCanonicalFileID(InstantiationEnd) != BugFileID) return; // Compute the column number of the end. - unsigned EndColNo = SM.getColumnNumber(LogicalEnd); + unsigned EndColNo = SM.getColumnNumber(InstantiationEnd); unsigned OldEndColNo = EndColNo; if (EndColNo) { @@ -496,8 +495,9 @@ void HTMLDiagnostics::HighlightRange(Rewriter& R, unsigned BugFileID, // Highlight the range. Make the span tag the outermost tag for the // selected range. - SourceLocation E = LogicalEnd.getFileLocWithOffset(EndColNo - OldEndColNo); + SourceLocation E = + InstantiationEnd.getFileLocWithOffset(EndColNo - OldEndColNo); |