From 88054dee0402e4d3c1f64e6b697acc47195c0d72 Mon Sep 17 00:00:00 2001
From: Chris Lattner
In practice, the SourceLocation works together with the SourceManager class to encode two pieces of information about a location: it's spelling location -and it's virtual location. For most tokens, these will be the same. However, +and it's instantiation location. For most tokens, these will be the same. However, for a macro expansion (or tokens that came from a _Pragma directive) these will describe the location of the characters corresponding to the token and the location where the token was used (i.e. the macro instantiation point or the diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h index bc8c854187..f7e160deeb 100644 --- a/include/clang/Basic/SourceManager.h +++ b/include/clang/Basic/SourceManager.h @@ -187,9 +187,9 @@ namespace SrcMgr { /// the token came from. An actual macro SourceLocation stores deltas from /// these positions. class MacroIDInfo { - SourceLocation VirtualLoc, SpellingLoc; + SourceLocation InstantiationLoc, SpellingLoc; public: - SourceLocation getVirtualLoc() const { return VirtualLoc; } + SourceLocation getInstantiationLoc() const { return InstantiationLoc; } SourceLocation getSpellingLoc() const { return SpellingLoc; } /// get - Return a MacroID for a macro expansion. VL specifies @@ -198,7 +198,7 @@ namespace SrcMgr { /// come from). Both VL and PL refer to normal File SLocs. static MacroIDInfo get(SourceLocation VL, SourceLocation SL) { MacroIDInfo X; - X.VirtualLoc = VL; + X.InstantiationLoc = VL; X.SpellingLoc = SL; return X; } @@ -384,7 +384,7 @@ public: // File locations work. if (Loc.isFileID()) return Loc; - return MacroIDs[Loc.getMacroID()].getVirtualLoc(); + return MacroIDs[Loc.getMacroID()].getInstantiationLoc(); } /// getSpellingLoc - Given a SourceLocation object, return the spelling diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index c64c1010be..fe868d0768 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -2488,6 +2488,7 @@ QualType ASTContext::mergeTypes(QualType LHS, QualType RHS) { //===----------------------------------------------------------------------===// // Integer Predicates //===----------------------------------------------------------------------===// + unsigned ASTContext::getIntWidth(QualType T) { if (T == BoolTy) return 1; diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp index 719d29aa79..55e8c4aee7 100644 --- a/lib/Basic/SourceManager.cpp +++ b/lib/Basic/SourceManager.cpp @@ -166,7 +166,7 @@ SourceLocation SourceManager::getInstantiationLoc(SourceLocation SpellingLoc, // The instanitation point and source SpellingLoc have to exactly match to // reuse (for now). We could allow "nearby" instantiations in the future. - if (LastOne.getVirtualLoc() != InstantLoc || + if (LastOne.getInstantiationLoc() != InstantLoc || LastOne.getSpellingLoc().getFileID() != SpellingLoc.getFileID()) continue; @@ -480,13 +480,13 @@ FileIDInfo FileIDInfo::ReadVal(llvm::Deserializer& D) { } void MacroIDInfo::Emit(llvm::Serializer& S) const { - S.Emit(VirtualLoc); + S.Emit(InstantiationLoc); S.Emit(SpellingLoc); } MacroIDInfo MacroIDInfo::ReadVal(llvm::Deserializer& D) { MacroIDInfo I; - I.VirtualLoc = SourceLocation::ReadVal(D); + I.InstantiationLoc = SourceLocation::ReadVal(D); I.SpellingLoc = SourceLocation::ReadVal(D); return I; }