Mechanically rename SourceManager::getInstantiationLoc and

FullSourceLoc::getInstantiationLoc to ...::getExpansionLoc. This is part
of the API and documentation update from 'instantiation' as the term for
macros to 'expansion'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135914 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chandler Carruth 2011-07-25 16:49:02 +00:00
Родитель 1cbac8ac44
Коммит 402785357a
24 изменённых файлов: 67 добавлений и 67 удалений

Просмотреть файл

@ -274,7 +274,7 @@ public:
FileID getFileID() const; FileID getFileID() const;
FullSourceLoc getInstantiationLoc() const; FullSourceLoc getExpansionLoc() const;
FullSourceLoc getSpellingLoc() const; FullSourceLoc getSpellingLoc() const;
unsigned getInstantiationLineNumber(bool *Invalid = 0) const; unsigned getInstantiationLineNumber(bool *Invalid = 0) const;

Просмотреть файл

@ -723,11 +723,11 @@ public:
return SourceLocation::getFileLoc(FileOffset); return SourceLocation::getFileLoc(FileOffset);
} }
/// getInstantiationLoc - Given a SourceLocation object, return the /// getExpansionLoc - Given a SourceLocation object, return the expansion
/// instantiation location referenced by the ID. /// location referenced by the ID.
SourceLocation getInstantiationLoc(SourceLocation Loc) const { SourceLocation getExpansionLoc(SourceLocation Loc) const {
// Handle the non-mapped case inline, defer to out of line code to handle // Handle the non-mapped case inline, defer to out of line code to handle
// instantiations. // expansions.
if (Loc.isFileID()) return Loc; if (Loc.isFileID()) return Loc;
return getInstantiationLocSlowCase(Loc); return getInstantiationLocSlowCase(Loc);
} }

Просмотреть файл

@ -22,7 +22,7 @@ typedef llvm::DenseMap<FileID, unsigned> FIDMap;
static void AddFID(FIDMap &FIDs, SmallVectorImpl<FileID> &V, static void AddFID(FIDMap &FIDs, SmallVectorImpl<FileID> &V,
const SourceManager &SM, SourceLocation L) { const SourceManager &SM, SourceLocation L) {
FileID FID = SM.getFileID(SM.getInstantiationLoc(L)); FileID FID = SM.getFileID(SM.getExpansionLoc(L));
FIDMap::iterator I = FIDs.find(FID); FIDMap::iterator I = FIDs.find(FID);
if (I != FIDs.end()) return; if (I != FIDs.end()) return;
FIDs[FID] = V.size(); FIDs[FID] = V.size();
@ -31,7 +31,7 @@ static void AddFID(FIDMap &FIDs, SmallVectorImpl<FileID> &V,
static unsigned GetFID(const FIDMap& FIDs, const SourceManager &SM, static unsigned GetFID(const FIDMap& FIDs, const SourceManager &SM,
SourceLocation L) { SourceLocation L) {
FileID FID = SM.getFileID(SM.getInstantiationLoc(L)); FileID FID = SM.getFileID(SM.getExpansionLoc(L));
FIDMap::const_iterator I = FIDs.find(FID); FIDMap::const_iterator I = FIDs.find(FID);
assert(I != FIDs.end()); assert(I != FIDs.end());
return I->second; return I->second;
@ -47,7 +47,7 @@ static void EmitLocation(raw_ostream& o, const SourceManager &SM,
SourceLocation L, const FIDMap &FM, SourceLocation L, const FIDMap &FM,
unsigned indent, bool extend = false) { unsigned indent, bool extend = false) {
FullSourceLoc Loc(SM.getInstantiationLoc(L), const_cast<SourceManager&>(SM)); FullSourceLoc Loc(SM.getExpansionLoc(L), const_cast<SourceManager&>(SM));
// Add in the length of the token, so that we cover multi-char tokens. // Add in the length of the token, so that we cover multi-char tokens.
unsigned offset = unsigned offset =

Просмотреть файл

@ -100,7 +100,7 @@ public:
bool useWeak = canApplyWeak(Pass.Ctx, var->getType()); bool useWeak = canApplyWeak(Pass.Ctx, var->getType());
SourceManager &SM = Pass.Ctx.getSourceManager(); SourceManager &SM = Pass.Ctx.getSourceManager();
Transaction Trans(Pass.TA); Transaction Trans(Pass.TA);
Pass.TA.replaceText(SM.getInstantiationLoc(attr->getLocation()), Pass.TA.replaceText(SM.getExpansionLoc(attr->getLocation()),
"__block", "__block",
useWeak ? "__weak" : "__unsafe_unretained"); useWeak ? "__weak" : "__unsafe_unretained");
} }

Просмотреть файл

@ -68,11 +68,11 @@ class TransformActionsImpl {
SourceLocation beginLoc = range.getBegin(), endLoc = range.getEnd(); SourceLocation beginLoc = range.getBegin(), endLoc = range.getEnd();
assert(beginLoc.isValid() && endLoc.isValid()); assert(beginLoc.isValid() && endLoc.isValid());
if (range.isTokenRange()) { if (range.isTokenRange()) {
Begin = FullSourceLoc(srcMgr.getInstantiationLoc(beginLoc), srcMgr); Begin = FullSourceLoc(srcMgr.getExpansionLoc(beginLoc), srcMgr);
End = FullSourceLoc(getLocForEndOfToken(endLoc, srcMgr, PP), srcMgr); End = FullSourceLoc(getLocForEndOfToken(endLoc, srcMgr, PP), srcMgr);
} else { } else {
Begin = FullSourceLoc(srcMgr.getInstantiationLoc(beginLoc), srcMgr); Begin = FullSourceLoc(srcMgr.getExpansionLoc(beginLoc), srcMgr);
End = FullSourceLoc(srcMgr.getInstantiationLoc(endLoc), srcMgr); End = FullSourceLoc(srcMgr.getExpansionLoc(endLoc), srcMgr);
} }
assert(Begin.isValid() && End.isValid()); assert(Begin.isValid() && End.isValid());
} }
@ -381,7 +381,7 @@ bool TransformActionsImpl::canInsert(SourceLocation loc) {
return false; return false;
SourceManager &SM = Ctx.getSourceManager(); SourceManager &SM = Ctx.getSourceManager();
if (SM.isInSystemHeader(SM.getInstantiationLoc(loc))) if (SM.isInSystemHeader(SM.getExpansionLoc(loc)))
return false; return false;
if (loc.isFileID()) if (loc.isFileID())
@ -394,7 +394,7 @@ bool TransformActionsImpl::canInsertAfterToken(SourceLocation loc) {
return false; return false;
SourceManager &SM = Ctx.getSourceManager(); SourceManager &SM = Ctx.getSourceManager();
if (SM.isInSystemHeader(SM.getInstantiationLoc(loc))) if (SM.isInSystemHeader(SM.getExpansionLoc(loc)))
return false; return false;
if (loc.isFileID()) if (loc.isFileID())
@ -416,7 +416,7 @@ bool TransformActionsImpl::canReplaceText(SourceLocation loc, StringRef text) {
return false; return false;
SourceManager &SM = Ctx.getSourceManager(); SourceManager &SM = Ctx.getSourceManager();
loc = SM.getInstantiationLoc(loc); loc = SM.getExpansionLoc(loc);
// Break down the source location. // Break down the source location.
std::pair<FileID, unsigned> locInfo = SM.getDecomposedLoc(loc); std::pair<FileID, unsigned> locInfo = SM.getDecomposedLoc(loc);
@ -477,7 +477,7 @@ void TransformActionsImpl::commitReplaceText(SourceLocation loc,
StringRef text, StringRef text,
StringRef replacementText) { StringRef replacementText) {
SourceManager &SM = Ctx.getSourceManager(); SourceManager &SM = Ctx.getSourceManager();
loc = SM.getInstantiationLoc(loc); loc = SM.getExpansionLoc(loc);
// canReplaceText already checked if loc points at text. // canReplaceText already checked if loc points at text.
SourceLocation afterText = loc.getFileLocWithOffset(text.size()); SourceLocation afterText = loc.getFileLocWithOffset(text.size());
@ -491,7 +491,7 @@ void TransformActionsImpl::commitIncreaseIndentation(SourceRange range,
IndentationRanges.push_back( IndentationRanges.push_back(
std::make_pair(CharRange(CharSourceRange::getTokenRange(range), std::make_pair(CharRange(CharSourceRange::getTokenRange(range),
SM, PP), SM, PP),
SM.getInstantiationLoc(parentIndent))); SM.getExpansionLoc(parentIndent)));
} }
void TransformActionsImpl::commitClearDiagnostic(ArrayRef<unsigned> IDs, void TransformActionsImpl::commitClearDiagnostic(ArrayRef<unsigned> IDs,
@ -501,7 +501,7 @@ void TransformActionsImpl::commitClearDiagnostic(ArrayRef<unsigned> IDs,
void TransformActionsImpl::addInsertion(SourceLocation loc, StringRef text) { void TransformActionsImpl::addInsertion(SourceLocation loc, StringRef text) {
SourceManager &SM = Ctx.getSourceManager(); SourceManager &SM = Ctx.getSourceManager();
loc = SM.getInstantiationLoc(loc); loc = SM.getExpansionLoc(loc);
for (std::list<CharRange>::reverse_iterator for (std::list<CharRange>::reverse_iterator
I = Removals.rbegin(), E = Removals.rend(); I != E; ++I) { I = Removals.rbegin(), E = Removals.rend(); I != E; ++I) {
if (!SM.isBeforeInTranslationUnit(loc, I->End)) if (!SM.isBeforeInTranslationUnit(loc, I->End))

Просмотреть файл

@ -540,7 +540,7 @@ DiagnosticIDs::getDiagnosticLevel(unsigned DiagID, unsigned DiagClass,
Diag.SuppressSystemWarnings && Diag.SuppressSystemWarnings &&
Loc.isValid() && Loc.isValid() &&
Diag.getSourceManager().isInSystemHeader( Diag.getSourceManager().isInSystemHeader(
Diag.getSourceManager().getInstantiationLoc(Loc))) Diag.getSourceManager().getExpansionLoc(Loc)))
return DiagnosticIDs::Ignored; return DiagnosticIDs::Ignored;
return Result; return Result;

Просмотреть файл

@ -54,7 +54,7 @@ void SourceLocation::print(raw_ostream &OS, const SourceManager &SM)const{
return; return;
} }
SM.getInstantiationLoc(*this).print(OS, SM); SM.getExpansionLoc(*this).print(OS, SM);
OS << " <Spelling="; OS << " <Spelling=";
SM.getSpellingLoc(*this).print(OS, SM); SM.getSpellingLoc(*this).print(OS, SM);
@ -75,9 +75,9 @@ FileID FullSourceLoc::getFileID() const {
} }
FullSourceLoc FullSourceLoc::getInstantiationLoc() const { FullSourceLoc FullSourceLoc::getExpansionLoc() const {
assert(isValid()); assert(isValid());
return FullSourceLoc(SrcMgr->getInstantiationLoc(*this), *SrcMgr); return FullSourceLoc(SrcMgr->getExpansionLoc(*this), *SrcMgr);
} }
FullSourceLoc FullSourceLoc::getSpellingLoc() const { FullSourceLoc FullSourceLoc::getSpellingLoc() const {

Просмотреть файл

@ -51,7 +51,7 @@ CGDebugInfo::~CGDebugInfo() {
void CGDebugInfo::setLocation(SourceLocation Loc) { void CGDebugInfo::setLocation(SourceLocation Loc) {
if (Loc.isValid()) if (Loc.isValid())
CurLoc = CGM.getContext().getSourceManager().getInstantiationLoc(Loc); CurLoc = CGM.getContext().getSourceManager().getExpansionLoc(Loc);
} }
/// getContextDescriptor - Get context info for the decl. /// getContextDescriptor - Get context info for the decl.
@ -1740,7 +1740,7 @@ void CGDebugInfo::EmitStopPoint(CGBuilderTy &Builder) {
// Don't bother if things are the same as last time. // Don't bother if things are the same as last time.
SourceManager &SM = CGM.getContext().getSourceManager(); SourceManager &SM = CGM.getContext().getSourceManager();
if (CurLoc == PrevLoc || if (CurLoc == PrevLoc ||
SM.getInstantiationLoc(CurLoc) == SM.getInstantiationLoc(PrevLoc)) SM.getExpansionLoc(CurLoc) == SM.getExpansionLoc(PrevLoc))
// New Builder may not be in sync with CGDebugInfo. // New Builder may not be in sync with CGDebugInfo.
if (!Builder.getCurrentDebugLocation().isUnknown()) if (!Builder.getCurrentDebugLocation().isUnknown())
return; return;

Просмотреть файл

@ -123,7 +123,7 @@ void DependencyFileCallback::FileChanged(SourceLocation Loc,
SourceManager &SM = PP->getSourceManager(); SourceManager &SM = PP->getSourceManager();
const FileEntry *FE = const FileEntry *FE =
SM.getFileEntryForID(SM.getFileID(SM.getInstantiationLoc(Loc))); SM.getFileEntryForID(SM.getFileID(SM.getExpansionLoc(Loc)));
if (FE == 0) return; if (FE == 0) return;
StringRef Filename = FE->getName(); StringRef Filename = FE->getName();

Просмотреть файл

@ -85,8 +85,8 @@ void TextDiagnosticPrinter::HighlightRange(const CharSourceRange &R,
"Expect a correspondence between source and caret line!"); "Expect a correspondence between source and caret line!");
if (!R.isValid()) return; if (!R.isValid()) return;
SourceLocation Begin = SM.getInstantiationLoc(R.getBegin()); SourceLocation Begin = SM.getExpansionLoc(R.getBegin());
SourceLocation End = SM.getInstantiationLoc(R.getEnd()); SourceLocation End = SM.getExpansionLoc(R.getEnd());
// If the End location and the start location are the same and are a macro // If the End location and the start location are the same and are a macro
// location, then the range was something that came from a macro expansion // location, then the range was something that came from a macro expansion
@ -914,7 +914,7 @@ void TextDiagnosticPrinter::HandleDiagnostic(Diagnostic::Level Level,
if (DiagOpts->ShowSourceRanges && Info.getNumRanges()) { if (DiagOpts->ShowSourceRanges && Info.getNumRanges()) {
FileID CaretFileID = FileID CaretFileID =
SM.getFileID(SM.getInstantiationLoc(Info.getLocation())); SM.getFileID(SM.getExpansionLoc(Info.getLocation()));
bool PrintedRange = false; bool PrintedRange = false;
for (unsigned i = 0, e = Info.getNumRanges(); i != e; ++i) { for (unsigned i = 0, e = Info.getNumRanges(); i != e; ++i) {
@ -923,8 +923,8 @@ void TextDiagnosticPrinter::HandleDiagnostic(Diagnostic::Level Level,
SourceLocation B = Info.getRange(i).getBegin(); SourceLocation B = Info.getRange(i).getBegin();
SourceLocation E = Info.getRange(i).getEnd(); SourceLocation E = Info.getRange(i).getEnd();
B = SM.getInstantiationLoc(B); B = SM.getExpansionLoc(B);
E = SM.getInstantiationLoc(E); E = SM.getExpansionLoc(E);
// If the End location and the start location are the same and are a // If the End location and the start location are the same and are a
// macro location, then the range was something that came from a // macro location, then the range was something that came from a

Просмотреть файл

@ -394,7 +394,7 @@ unsigned Lexer::MeasureTokenLength(SourceLocation Loc,
// If this comes from a macro expansion, we really do want the macro name, not // If this comes from a macro expansion, we really do want the macro name, not
// the token this macro expanded to. // the token this macro expanded to.
Loc = SM.getInstantiationLoc(Loc); Loc = SM.getExpansionLoc(Loc);
std::pair<FileID, unsigned> LocInfo = SM.getDecomposedLoc(Loc); std::pair<FileID, unsigned> LocInfo = SM.getDecomposedLoc(Loc);
bool Invalid = false; bool Invalid = false;
StringRef Buffer = SM.getBufferData(LocInfo.first, &Invalid); StringRef Buffer = SM.getBufferData(LocInfo.first, &Invalid);

Просмотреть файл

@ -55,7 +55,7 @@ void TokenLexer::Init(Token &Tok, SourceLocation ELEnd, MacroArgs *Actuals) {
// definition. Tokens that get lexed directly from the definition will // definition. Tokens that get lexed directly from the definition will
// have their locations pointing inside this chunk. This is to avoid // have their locations pointing inside this chunk. This is to avoid
// creating separate source location entries for each token. // creating separate source location entries for each token.
SourceLocation macroStart = SM.getInstantiationLoc(Tokens[0].getLocation()); SourceLocation macroStart = SM.getExpansionLoc(Tokens[0].getLocation());
MacroDefStartInfo = SM.getDecomposedLoc(macroStart); MacroDefStartInfo = SM.getDecomposedLoc(macroStart);
MacroExpansionStart = SM.createInstantiationLoc(macroStart, MacroExpansionStart = SM.createInstantiationLoc(macroStart,
ExpandLocStart, ExpandLocStart,

Просмотреть файл

@ -311,7 +311,7 @@ Parser::ParseRHSOfBinaryExpression(ExprResult LHS, prec::Level MinPrec) {
const char *FIText = ": "; const char *FIText = ": ";
const SourceManager &SM = PP.getSourceManager(); const SourceManager &SM = PP.getSourceManager();
if (FILoc.isFileID() || PP.isAtStartOfMacroExpansion(FILoc)) { if (FILoc.isFileID() || PP.isAtStartOfMacroExpansion(FILoc)) {
FILoc = SM.getInstantiationLoc(FILoc); FILoc = SM.getExpansionLoc(FILoc);
bool IsInvalid = false; bool IsInvalid = false;
const char *SourcePtr = const char *SourcePtr =
SM.getCharacterData(FILoc.getFileLocWithOffset(-1), &IsInvalid); SM.getCharacterData(FILoc.getFileLocWithOffset(-1), &IsInvalid);

Просмотреть файл

@ -33,8 +33,8 @@ using namespace clang;
void html::HighlightRange(Rewriter &R, SourceLocation B, SourceLocation E, void html::HighlightRange(Rewriter &R, SourceLocation B, SourceLocation E,
const char *StartTag, const char *EndTag) { const char *StartTag, const char *EndTag) {
SourceManager &SM = R.getSourceMgr(); SourceManager &SM = R.getSourceMgr();
B = SM.getInstantiationLoc(B); B = SM.getExpansionLoc(B);
E = SM.getInstantiationLoc(E); E = SM.getExpansionLoc(E);
FileID FID = SM.getFileID(B); FileID FID = SM.getFileID(B);
assert(SM.getFileID(E) == FID && "B/E not in the same file!"); assert(SM.getFileID(E) == FID && "B/E not in the same file!");
@ -542,7 +542,7 @@ void html::HighlightMacros(Rewriter &R, FileID FID, const Preprocessor& PP) {
// instantiation. It would be really nice to pop up a window with all the // instantiation. It would be really nice to pop up a window with all the
// spelling of the tokens or something. // spelling of the tokens or something.
while (!Tok.is(tok::eof) && while (!Tok.is(tok::eof) &&
SM.getInstantiationLoc(Tok.getLocation()) == LLoc.first) { SM.getExpansionLoc(Tok.getLocation()) == LLoc.first) {
// Insert a newline if the macro expansion is getting large. // Insert a newline if the macro expansion is getting large.
if (LineLen > 60) { if (LineLen > 60) {
Expansion += "<br>"; Expansion += "<br>";

Просмотреть файл

@ -112,7 +112,7 @@ void clang::RewriteMacrosInInput(Preprocessor &PP, raw_ostream *OS) {
// that aren't in the preprocessed view, we have macros that expand to no // that aren't in the preprocessed view, we have macros that expand to no
// tokens, or macro arguments etc. // tokens, or macro arguments etc.
while (RawTok.isNot(tok::eof) || PPTok.isNot(tok::eof)) { while (RawTok.isNot(tok::eof) || PPTok.isNot(tok::eof)) {
SourceLocation PPLoc = SM.getInstantiationLoc(PPTok.getLocation()); SourceLocation PPLoc = SM.getExpansionLoc(PPTok.getLocation());
// If PPTok is from a different source file, ignore it. // If PPTok is from a different source file, ignore it.
if (!SM.isFromMainFile(PPLoc)) { if (!SM.isFromMainFile(PPLoc)) {
@ -197,7 +197,7 @@ void clang::RewriteMacrosInInput(Preprocessor &PP, raw_ostream *OS) {
while (PPOffs < RawOffs) { while (PPOffs < RawOffs) {
Expansion += ' ' + PP.getSpelling(PPTok); Expansion += ' ' + PP.getSpelling(PPTok);
PP.Lex(PPTok); PP.Lex(PPTok);
PPLoc = SM.getInstantiationLoc(PPTok.getLocation()); PPLoc = SM.getExpansionLoc(PPTok.getLocation());
PPOffs = SM.getFileOffset(PPLoc); PPOffs = SM.getFileOffset(PPLoc);
} }
Expansion += ' '; Expansion += ' ';

Просмотреть файл

@ -690,7 +690,7 @@ void RewriteObjC::HandleTopLevelSingleDecl(Decl *D) {
// #included file. If the former, rewrite it now. If the later, check to see // #included file. If the former, rewrite it now. If the later, check to see
// if we rewrote the #include/#import. // if we rewrote the #include/#import.
SourceLocation Loc = D->getLocation(); SourceLocation Loc = D->getLocation();
Loc = SM->getInstantiationLoc(Loc); Loc = SM->getExpansionLoc(Loc);
// If this is for a builtin, ignore it. // If this is for a builtin, ignore it.
if (Loc.isInvalid()) return; if (Loc.isInvalid()) return;
@ -2342,13 +2342,13 @@ void RewriteObjC::RewriteTypeOfDecl(VarDecl *ND) {
startLoc = ECE->getLParenLoc(); startLoc = ECE->getLParenLoc();
else else
startLoc = E->getLocStart(); startLoc = E->getLocStart();
startLoc = SM->getInstantiationLoc(startLoc); startLoc = SM->getExpansionLoc(startLoc);
const char *endBuf = SM->getCharacterData(startLoc); const char *endBuf = SM->getCharacterData(startLoc);
ReplaceText(DeclLoc, endBuf-startBuf-1, TypeAsString); ReplaceText(DeclLoc, endBuf-startBuf-1, TypeAsString);
} }
else { else {
SourceLocation X = ND->getLocEnd(); SourceLocation X = ND->getLocEnd();
X = SM->getInstantiationLoc(X); X = SM->getExpansionLoc(X);
const char *endBuf = SM->getCharacterData(X); const char *endBuf = SM->getCharacterData(X);
ReplaceText(DeclLoc, endBuf-startBuf-1, TypeAsString); ReplaceText(DeclLoc, endBuf-startBuf-1, TypeAsString);
} }
@ -5108,7 +5108,7 @@ void RewriteObjC::RewriteByRefVar(VarDecl *ND) {
DeclLoc = ND->getLocation(); DeclLoc = ND->getLocation();
const char *startBuf = SM->getCharacterData(DeclLoc); const char *startBuf = SM->getCharacterData(DeclLoc);
SourceLocation X = ND->getLocEnd(); SourceLocation X = ND->getLocEnd();
X = SM->getInstantiationLoc(X); X = SM->getExpansionLoc(X);
const char *endBuf = SM->getCharacterData(X); const char *endBuf = SM->getCharacterData(X);
std::string Name(ND->getNameAsString()); std::string Name(ND->getNameAsString());
std::string ByrefType; std::string ByrefType;
@ -5203,7 +5203,7 @@ void RewriteObjC::RewriteByRefVar(VarDecl *ND) {
startLoc = ECE->getLParenLoc(); startLoc = ECE->getLParenLoc();
else else
startLoc = E->getLocStart(); startLoc = E->getLocStart();
startLoc = SM->getInstantiationLoc(startLoc); startLoc = SM->getExpansionLoc(startLoc);
endBuf = SM->getCharacterData(startLoc); endBuf = SM->getCharacterData(startLoc);
ByrefType += " " + Name; ByrefType += " " + Name;
ByrefType += " = {(void*)"; ByrefType += " = {(void*)";

Просмотреть файл

@ -687,7 +687,7 @@ bool Sema::findMacroSpelling(SourceLocation &locref, StringRef name) {
// There's no good way right now to look at the intermediate // There's no good way right now to look at the intermediate
// instantiations, so just jump to the instantiation location. // instantiations, so just jump to the instantiation location.
loc = getSourceManager().getInstantiationLoc(loc); loc = getSourceManager().getExpansionLoc(loc);
// If that's written with the name, stop here. // If that's written with the name, stop here.
SmallVector<char, 16> buffer; SmallVector<char, 16> buffer;

Просмотреть файл

@ -4947,7 +4947,7 @@ Decl *Sema::ActOnUsingDirective(Scope *S,
IdentLoc, Named, CommonAncestor); IdentLoc, Named, CommonAncestor);
if (IsUsingDirectiveInToplevelContext(CurContext) && if (IsUsingDirectiveInToplevelContext(CurContext) &&
!SourceMgr.isFromMainFile(SourceMgr.getInstantiationLoc(IdentLoc))) { !SourceMgr.isFromMainFile(SourceMgr.getExpansionLoc(IdentLoc))) {
Diag(IdentLoc, diag::warn_using_directive_in_header); Diag(IdentLoc, diag::warn_using_directive_in_header);
} }

Просмотреть файл

@ -974,10 +974,10 @@ bool EdgeBuilder::containsLocation(const PathDiagnosticLocation &Container,
SourceRange ContaineeR = Containee.asRange(); SourceRange ContaineeR = Containee.asRange();
SourceManager &SM = PDB.getSourceManager(); SourceManager &SM = PDB.getSourceManager();
SourceLocation ContainerRBeg = SM.getInstantiationLoc(ContainerR.getBegin()); SourceLocation ContainerRBeg = SM.getExpansionLoc(ContainerR.getBegin());
SourceLocation ContainerREnd = SM.getInstantiationLoc(ContainerR.getEnd()); SourceLocation ContainerREnd = SM.getExpansionLoc(ContainerR.getEnd());
SourceLocation ContaineeRBeg = SM.getInstantiationLoc(ContaineeR.getBegin()); SourceLocation ContaineeRBeg = SM.getExpansionLoc(ContaineeR.getBegin());
SourceLocation ContaineeREnd = SM.getInstantiationLoc(ContaineeR.getEnd()); SourceLocation ContaineeREnd = SM.getExpansionLoc(ContaineeR.getEnd());
unsigned ContainerBegLine = SM.getInstantiationLineNumber(ContainerRBeg); unsigned ContainerBegLine = SM.getInstantiationLineNumber(ContainerRBeg);
unsigned ContainerEndLine = SM.getInstantiationLineNumber(ContainerREnd); unsigned ContainerEndLine = SM.getInstantiationLineNumber(ContainerREnd);
@ -1010,8 +1010,8 @@ void EdgeBuilder::rawAddEdge(PathDiagnosticLocation NewLoc) {
return; return;
// FIXME: Ignore intra-macro edges for now. // FIXME: Ignore intra-macro edges for now.
if (NewLocClean.asLocation().getInstantiationLoc() == if (NewLocClean.asLocation().getExpansionLoc() ==
PrevLocClean.asLocation().getInstantiationLoc()) PrevLocClean.asLocation().getExpansionLoc())
return; return;
PD.push_front(new PathDiagnosticControlFlowPiece(NewLocClean, PrevLocClean)); PD.push_front(new PathDiagnosticControlFlowPiece(NewLocClean, PrevLocClean));
@ -1495,7 +1495,7 @@ static void CompactPathDiagnostic(PathDiagnostic &PD, const SourceManager& SM) {
// Determine the instantiation location, which is the location we group // Determine the instantiation location, which is the location we group
// related PathDiagnosticPieces. // related PathDiagnosticPieces.
SourceLocation InstantiationLoc = Loc.isMacroID() ? SourceLocation InstantiationLoc = Loc.isMacroID() ?
SM.getInstantiationLoc(Loc) : SM.getExpansionLoc(Loc) :
SourceLocation(); SourceLocation();
if (Loc.isFileID()) { if (Loc.isFileID()) {
@ -1517,7 +1517,7 @@ static void CompactPathDiagnostic(PathDiagnostic &PD, const SourceManager& SM) {
PathDiagnosticMacroPiece *MacroGroup = 0; PathDiagnosticMacroPiece *MacroGroup = 0;
SourceLocation ParentInstantiationLoc = InstantiationLoc.isMacroID() ? SourceLocation ParentInstantiationLoc = InstantiationLoc.isMacroID() ?
SM.getInstantiationLoc(Loc) : SM.getExpansionLoc(Loc) :
SourceLocation(); SourceLocation();
// Walk the entire macro stack. // Walk the entire macro stack.

Просмотреть файл

@ -143,7 +143,7 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D,
// Verify that the entire path is from the same FileID. // Verify that the entire path is from the same FileID.
for (PathDiagnostic::const_iterator I = D.begin(), E = D.end(); I != E; ++I) { for (PathDiagnostic::const_iterator I = D.begin(), E = D.end(); I != E; ++I) {
FullSourceLoc L = I->getLocation().asLocation().getInstantiationLoc(); FullSourceLoc L = I->getLocation().asLocation().getExpansionLoc();
if (FID.isInvalid()) { if (FID.isInvalid()) {
FID = SMgr.getFileID(L); FID = SMgr.getFileID(L);
@ -154,12 +154,12 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D,
for (PathDiagnosticPiece::range_iterator RI=I->ranges_begin(), for (PathDiagnosticPiece::range_iterator RI=I->ranges_begin(),
RE=I->ranges_end(); RI!=RE; ++RI) { RE=I->ranges_end(); RI!=RE; ++RI) {
SourceLocation L = SMgr.getInstantiationLoc(RI->getBegin()); SourceLocation L = SMgr.getExpansionLoc(RI->getBegin());
if (!L.isFileID() || SMgr.getFileID(L) != FID) if (!L.isFileID() || SMgr.getFileID(L) != FID)
return; // FIXME: Emit a warning? return; // FIXME: Emit a warning?
L = SMgr.getInstantiationLoc(RI->getEnd()); L = SMgr.getExpansionLoc(RI->getEnd());
if (!L.isFileID() || SMgr.getFileID(L) != FID) if (!L.isFileID() || SMgr.getFileID(L) != FID)
return; // FIXME: Emit a warning? return; // FIXME: Emit a warning?
@ -335,7 +335,7 @@ void HTMLDiagnostics::HandlePiece(Rewriter& R, FileID BugFileID,
// Compute the column number. Rewind from the current position to the start // Compute the column number. Rewind from the current position to the start
// of the line. // of the line.
unsigned ColNo = SM.getColumnNumber(LPosInfo.first, LPosInfo.second); unsigned ColNo = SM.getColumnNumber(LPosInfo.first, LPosInfo.second);
const char *TokInstantiationPtr =Pos.getInstantiationLoc().getCharacterData(); const char *TokInstantiationPtr =Pos.getExpansionLoc().getCharacterData();
const char *LineStart = TokInstantiationPtr-ColNo; const char *LineStart = TokInstantiationPtr-ColNo;
// Compute LineEnd. // Compute LineEnd.
@ -441,7 +441,7 @@ void HTMLDiagnostics::HandlePiece(Rewriter& R, FileID BugFileID,
// Get the name of the macro by relexing it. // Get the name of the macro by relexing it.
{ {
FullSourceLoc L = MP->getLocation().asLocation().getInstantiationLoc(); FullSourceLoc L = MP->getLocation().asLocation().getExpansionLoc();
assert(L.isFileID()); assert(L.isFileID());
StringRef BufferInfo = L.getBufferData(); StringRef BufferInfo = L.getBufferData();
const char* MacroName = L.getDecomposedLoc().second + BufferInfo.data(); const char* MacroName = L.getDecomposedLoc().second + BufferInfo.data();
@ -549,10 +549,10 @@ void HTMLDiagnostics::HighlightRange(Rewriter& R, FileID BugFileID,
SourceManager &SM = R.getSourceMgr(); SourceManager &SM = R.getSourceMgr();
const LangOptions &LangOpts = R.getLangOpts(); const LangOptions &LangOpts = R.getLangOpts();
SourceLocation InstantiationStart = SM.getInstantiationLoc(Range.getBegin()); SourceLocation InstantiationStart = SM.getExpansionLoc(Range.getBegin());
unsigned StartLineNo = SM.getInstantiationLineNumber(InstantiationStart); unsigned StartLineNo = SM.getInstantiationLineNumber(InstantiationStart);
SourceLocation InstantiationEnd = SM.getInstantiationLoc(Range.getEnd()); SourceLocation InstantiationEnd = SM.getExpansionLoc(Range.getEnd());
unsigned EndLineNo = SM.getInstantiationLineNumber(InstantiationEnd); unsigned EndLineNo = SM.getInstantiationLineNumber(InstantiationEnd);
if (EndLineNo < StartLineNo) if (EndLineNo < StartLineNo)

Просмотреть файл

@ -109,7 +109,7 @@ PlistDiagnostics::getGenerationScheme() const {
static void AddFID(FIDMap &FIDs, SmallVectorImpl<FileID> &V, static void AddFID(FIDMap &FIDs, SmallVectorImpl<FileID> &V,
const SourceManager* SM, SourceLocation L) { const SourceManager* SM, SourceLocation L) {
FileID FID = SM->getFileID(SM->getInstantiationLoc(L)); FileID FID = SM->getFileID(SM->getExpansionLoc(L));
FIDMap::iterator I = FIDs.find(FID); FIDMap::iterator I = FIDs.find(FID);
if (I != FIDs.end()) return; if (I != FIDs.end()) return;
FIDs[FID] = V.size(); FIDs[FID] = V.size();
@ -118,7 +118,7 @@ static void AddFID(FIDMap &FIDs, SmallVectorImpl<FileID> &V,
static unsigned GetFID(const FIDMap& FIDs, const SourceManager &SM, static unsigned GetFID(const FIDMap& FIDs, const SourceManager &SM,
SourceLocation L) { SourceLocation L) {
FileID FID = SM.getFileID(SM.getInstantiationLoc(L)); FileID FID = SM.getFileID(SM.getExpansionLoc(L));
FIDMap::const_iterator I = FIDs.find(FID); FIDMap::const_iterator I = FIDs.find(FID);
assert(I != FIDs.end()); assert(I != FIDs.end());
return I->second; return I->second;
@ -134,7 +134,7 @@ static void EmitLocation(raw_ostream& o, const SourceManager &SM,
SourceLocation L, const FIDMap &FM, SourceLocation L, const FIDMap &FM,
unsigned indent, bool extend = false) { unsigned indent, bool extend = false) {
FullSourceLoc Loc(SM.getInstantiationLoc(L), const_cast<SourceManager&>(SM)); FullSourceLoc Loc(SM.getExpansionLoc(L), const_cast<SourceManager&>(SM));
// Add in the length of the token, so that we cover multi-char tokens. // Add in the length of the token, so that we cover multi-char tokens.
unsigned offset = unsigned offset =

Просмотреть файл

@ -267,7 +267,7 @@ void AnalysisConsumer::HandleCode(Decl *D) {
// Don't run the actions on declarations in header files unless // Don't run the actions on declarations in header files unless
// otherwise specified. // otherwise specified.
SourceManager &SM = Ctx->getSourceManager(); SourceManager &SM = Ctx->getSourceManager();
SourceLocation SL = SM.getInstantiationLoc(D->getLocation()); SourceLocation SL = SM.getExpansionLoc(D->getLocation());
if (!Opts.AnalyzeAll && !SM.isFromMainFile(SL)) if (!Opts.AnalyzeAll && !SM.isFromMainFile(SL))
return; return;

Просмотреть файл

@ -2824,7 +2824,7 @@ void clang_getInstantiationLocation(CXSourceLocation location,
const SourceManager &SM = const SourceManager &SM =
*static_cast<const SourceManager*>(location.ptr_data[0]); *static_cast<const SourceManager*>(location.ptr_data[0]);
SourceLocation InstLoc = SM.getInstantiationLoc(Loc); SourceLocation InstLoc = SM.getExpansionLoc(Loc);
// Check that the FileID is invalid on the expansion location. // Check that the FileID is invalid on the expansion location.
// This can manifest in invalid code. // This can manifest in invalid code.
@ -2865,7 +2865,7 @@ void clang_getSpellingLocation(CXSourceLocation location,
SM.getFileEntryForID(SM.getDecomposedLoc(SimpleSpellingLoc).first)) SM.getFileEntryForID(SM.getDecomposedLoc(SimpleSpellingLoc).first))
SpellLoc = SimpleSpellingLoc; SpellLoc = SimpleSpellingLoc;
else else
SpellLoc = SM.getInstantiationLoc(SpellLoc); SpellLoc = SM.getExpansionLoc(SpellLoc);
} }
std::pair<FileID, unsigned> LocInfo = SM.getDecomposedLoc(SpellLoc); std::pair<FileID, unsigned> LocInfo = SM.getDecomposedLoc(SpellLoc);

Просмотреть файл

@ -486,7 +486,7 @@ bool USRGenerator::GenLoc(const Decl *D) {
IgnoreResults = true; IgnoreResults = true;
return true; return true;
} }
L = SM.getInstantiationLoc(L); L = SM.getExpansionLoc(L);
const std::pair<FileID, unsigned> &Decomposed = SM.getDecomposedLoc(L); const std::pair<FileID, unsigned> &Decomposed = SM.getDecomposedLoc(L);
const FileEntry *FE = SM.getFileEntryForID(Decomposed.first); const FileEntry *FE = SM.getFileEntryForID(Decomposed.first);
if (FE) { if (FE) {