<p>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
/// 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
/// 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;
}
// 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
//===----------------------------------------------------------------------===//
// Integer Predicates
//===----------------------------------------------------------------------===//
+
unsigned ASTContext::getIntWidth(QualType T) {
if (T == BoolTy)
return 1;
// 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;
}
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;
}