diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-10-28 23:57:43 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-10-28 23:57:43 +0000 |
commit | df53da872501188319e3914d48eccdd1aa83ed11 (patch) | |
tree | 83e1ff27b2e4773b2a7391538ff6e2893983978b /clang/lib/Serialization/ASTWriter.cpp | |
parent | 1848afbbe8b70f54d546e50ea46f84f70cff7e10 (diff) | |
download | bcm5719-llvm-df53da872501188319e3914d48eccdd1aa83ed11.tar.gz bcm5719-llvm-df53da872501188319e3914d48eccdd1aa83ed11.zip |
[PCH] In ASTWriter::associateDeclWithFile don't bother finding the file loc
if we are not interested in the decl.
llvm-svn: 143255
Diffstat (limited to 'clang/lib/Serialization/ASTWriter.cpp')
-rw-r--r-- | clang/lib/Serialization/ASTWriter.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 749c27b1aa1..0c9f0a1247c 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -3486,17 +3486,20 @@ static inline bool compLocDecl(std::pair<unsigned, serialization::DeclID> L, return L.first < R.first; } -void ASTWriter::associateDeclWithFile(const Decl *D, DeclID ID, - SourceLocation FileLoc) { +void ASTWriter::associateDeclWithFile(const Decl *D, DeclID ID) { assert(ID); - assert(FileLoc.isValid()); - assert(FileLoc.isFileID()); + assert(D); + + SourceLocation Loc = D->getLocation(); + if (Loc.isInvalid()) + return; // We only keep track of the file-level declarations of each file. if (!D->getLexicalDeclContext()->isFileContext()) return; SourceManager &SM = Context->getSourceManager(); + SourceLocation FileLoc = SM.getFileLoc(Loc); assert(SM.isLocalSourceLocation(FileLoc)); FileID FID = SM.getFileID(FileLoc); if (FID.isInvalid()) |