diff options
author | Vassil Vassilev <v.g.vassilev@gmail.com> | 2018-11-20 13:53:20 +0000 |
---|---|---|
committer | Vassil Vassilev <v.g.vassilev@gmail.com> | 2018-11-20 13:53:20 +0000 |
commit | d8ea6e585d1553fb64ae55c27264c0459957bbee (patch) | |
tree | 920d27545a92f9ac8b7beb10d20e67fbe9a5fd22 /include/clang | |
parent | dafd68092ceda14b5b4a24fabef35bec783876a7 (diff) |
Allow force updating the NumCreatedFIDsForFileID.
Our internal clients implement parsing cache based on FileID. In order for the
Preprocessor to reenter the cached FileID it needs to reset its
NumCreatedFIDsForFileID.
Differential Revision: https://reviews.llvm.org/D51295
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@347304 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang')
-rw-r--r-- | include/clang/Basic/SourceManager.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h index 914225a5c2..dcc4a37e23 100644 --- a/include/clang/Basic/SourceManager.h +++ b/include/clang/Basic/SourceManager.h @@ -1024,13 +1024,14 @@ public: /// Set the number of FileIDs (files and macros) that were created /// during preprocessing of \p FID, including it. - void setNumCreatedFIDsForFileID(FileID FID, unsigned NumFIDs) const { + void setNumCreatedFIDsForFileID(FileID FID, unsigned NumFIDs, + bool Force = false) const { bool Invalid = false; const SrcMgr::SLocEntry &Entry = getSLocEntry(FID, &Invalid); if (Invalid || !Entry.isFile()) return; - assert(Entry.getFile().NumCreatedFIDs == 0 && "Already set!"); + assert((Force || Entry.getFile().NumCreatedFIDs == 0) && "Already set!"); const_cast<SrcMgr::FileInfo &>(Entry.getFile()).NumCreatedFIDs = NumFIDs; } |