[PATCH] D51295: Allow resetting of NumCreatedFIDsForFileID
Vassil Vassilev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 27 04:48:42 PDT 2018
v.g.vassilev created this revision.
v.g.vassilev added reviewers: rsmith, akyrtzi.
Herald added a subscriber: cfe-commits.
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.
Alternatively we can simply remove the assert ;)
Repository:
rC Clang
https://reviews.llvm.org/D51295
Files:
include/clang/Basic/SourceManager.h
Index: include/clang/Basic/SourceManager.h
===================================================================
--- include/clang/Basic/SourceManager.h
+++ include/clang/Basic/SourceManager.h
@@ -1024,13 +1024,14 @@
/// 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;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51295.162654.patch
Type: text/x-patch
Size: 920 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180827/d17ef25e/attachment.bin>
More information about the cfe-commits
mailing list