[PATCH] D20124: [PCH] Serialize skipped preprocessor ranges

Erik Verbruggen via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 28 02:29:10 PST 2017


erikjv added a comment.

Maybe something like this works:

  --- a/tools/libclang/CIndex.cpp
  +++ b/tools/libclang/CIndex.cpp
  @@ -8090,6 +8090,7 @@ CXSourceRangeList *clang_getSkippedRanges(CXTranslationUnit TU, CXFile file) {
     SourceManager &sm = Ctx.getSourceManager();
     FileEntry *fileEntry = static_cast<FileEntry *>(file);
     FileID wantedFileID = sm.translateFile(fileEntry);
  +  bool isMainFile = wantedFileID == sm.getMainFileID();
   
     const std::vector<SourceRange> &SkippedRanges = ppRec->getSkippedRanges();
     std::vector<SourceRange> wantedRanges;
  @@ -8097,6 +8098,8 @@ CXSourceRangeList *clang_getSkippedRanges(CXTranslationUnit TU, CXFile file) {
          i != ei; ++i) {
       if (sm.getFileID(i->getBegin()) == wantedFileID || sm.getFileID(i->getEnd()) == wantedFileID)
         wantedRanges.push_back(*i);
  +    else if (isMainFile && (astUnit->isInPreambleFileID(i->getBegin()) || astUnit->isInPreambleFileID(i->getEnd())))
  +      wantedRanges.push_back(*i);
     }
   
     skipped->count = wantedRanges.size();


https://reviews.llvm.org/D20124





More information about the cfe-commits mailing list