aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-01-16 07:36:28 +0000
committerChris Lattner <sabre@nondot.org>2009-01-16 07:36:28 +0000
commitf7cf85b330bedd2877e1371fb0a83e99751ae162 (patch)
tree6674dd8f06d3c395ab61ad9770934c49572e200c
parent88054dee0402e4d3c1f64e6b697acc47195c0d72 (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.cpp6
-rw-r--r--Driver/PrintPreprocessedOutput.cpp10
-rw-r--r--Driver/RewriteBlocks.cpp2
-rw-r--r--Driver/RewriteMacros.cpp4
-rw-r--r--Driver/RewriteObjC.cpp2
-rw-r--r--include/clang/Basic/SourceLocation.h6
-rw-r--r--include/clang/Basic/SourceManager.h41
-rw-r--r--lib/Analysis/BugReporter.cpp23
-rw-r--r--lib/Analysis/CFRefCount.cpp6
-rw-r--r--lib/Analysis/GRExprEngineInternalChecks.cpp5
-rw-r--r--lib/Basic/SourceLocation.cpp22
-rw-r--r--lib/Basic/SourceManager.cpp4
-rw-r--r--lib/CodeGen/CGDebugInfo.cpp24
-rw-r--r--lib/CodeGen/CGDecl.cpp3
-rw-r--r--lib/CodeGen/CodeGenModule.cpp2
-rw-r--r--lib/Driver/HTMLDiagnostics.cpp46
-rw-r--r--lib/Driver/PlistDiagnostics.cpp9
-rw-r--r--lib/Driver/TextDiagnosticPrinter.cpp27
-rw-r--r--lib/Lex/Lexer.cpp8
-rw-r--r--lib/Lex/PPMacroExpansion.cpp6
-rw-r--r--lib/Lex/Preprocessor.cpp4
-rw-r--r--lib/Parse/ParseStmt.cpp4
-rw-r--r--lib/Rewrite/HTMLRewrite.cpp10
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);