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



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to