[clang-tools-extra] r331905 - [tools] Updating PPCallbacks::InclusionDirective calls

Evgenii Stepanov via cfe-commits cfe-commits at lists.llvm.org
Wed May 9 15:13:08 PDT 2018


HI,

ASan says there is a use-after-free after this change:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/5410/steps/check-clang%20asan/logs/stdio

MSan also sees a problem, but ASan's is likely closer to the root cause:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-msan/builds/4529/steps/check-clang%20msan/logs/stdio

On Wed, May 9, 2018 at 11:27 AM, Julie Hockett via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: juliehockett
> Date: Wed May  9 11:27:37 2018
> New Revision: 331905
>
> URL: http://llvm.org/viewvc/llvm-project?rev=331905&view=rev
> Log:
> [tools] Updating PPCallbacks::InclusionDirective calls
>
> [revision] added SrcMgr::CharacteristicKind to the InclusionDirective
> callback, this revision updates instances of it in clang-tools-extra.
>
> Differential Revision: https://reviews.llvm.org/D46615
>
> Modified:
>     clang-tools-extra/trunk/clang-move/ClangMove.cpp
>     clang-tools-extra/trunk/clang-tidy/llvm/IncludeOrderCheck.cpp
>     clang-tools-extra/trunk/clang-tidy/modernize/
> DeprecatedHeadersCheck.cpp
>     clang-tools-extra/trunk/clang-tidy/utils/IncludeInserter.cpp
>     clang-tools-extra/trunk/clangd/ClangdUnit.cpp
>     clang-tools-extra/trunk/clangd/Headers.cpp
>     clang-tools-extra/trunk/modularize/CoverageChecker.cpp
>     clang-tools-extra/trunk/modularize/PreprocessorTracker.cpp
>     clang-tools-extra/trunk/pp-trace/PPCallbacksTracker.cpp
>     clang-tools-extra/trunk/pp-trace/PPCallbacksTracker.h
>
> Modified: clang-tools-extra/trunk/clang-move/ClangMove.cpp
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-move/ClangMove.cpp?rev=331905&r1=331904&r2=331905&view=diff
> ============================================================
> ==================
> --- clang-tools-extra/trunk/clang-move/ClangMove.cpp (original)
> +++ clang-tools-extra/trunk/clang-move/ClangMove.cpp Wed May  9 11:27:37
> 2018
> @@ -131,7 +131,8 @@ public:
>                            clang::CharSourceRange FilenameRange,
>                            const clang::FileEntry * /*File*/,
>                            StringRef SearchPath, StringRef
> /*RelativePath*/,
> -                          const clang::Module * /*Imported*/) override {
> +                          const clang::Module * /*Imported*/,
> +                          SrcMgr::CharacteristicKind /*FileType*/)
> override {
>      if (const auto *FileEntry = SM.getFileEntryForID(SM.
> getFileID(HashLoc)))
>        MoveTool->addIncludes(FileName, IsAngled, SearchPath,
>                              FileEntry->getName(), FilenameRange, SM);
>
> Modified: clang-tools-extra/trunk/clang-tidy/llvm/IncludeOrderCheck.cpp
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/llvm/IncludeOrderCheck.cpp?rev=
> 331905&r1=331904&r2=331905&view=diff
> ============================================================
> ==================
> --- clang-tools-extra/trunk/clang-tidy/llvm/IncludeOrderCheck.cpp
> (original)
> +++ clang-tools-extra/trunk/clang-tidy/llvm/IncludeOrderCheck.cpp Wed
> May  9 11:27:37 2018
> @@ -28,7 +28,8 @@ public:
>                            StringRef FileName, bool IsAngled,
>                            CharSourceRange FilenameRange, const FileEntry
> *File,
>                            StringRef SearchPath, StringRef RelativePath,
> -                          const Module *Imported) override;
> +                          const Module *Imported,
> +                          SrcMgr::CharacteristicKind FileType) override;
>    void EndOfMainFile() override;
>
>  private:
> @@ -76,7 +77,8 @@ static int getPriority(StringRef Filenam
>  void IncludeOrderPPCallbacks::InclusionDirective(
>      SourceLocation HashLoc, const Token &IncludeTok, StringRef FileName,
>      bool IsAngled, CharSourceRange FilenameRange, const FileEntry *File,
> -    StringRef SearchPath, StringRef RelativePath, const Module *Imported)
> {
> +    StringRef SearchPath, StringRef RelativePath, const Module *Imported,
> +    SrcMgr::CharacteristicKind FileType) {
>    // We recognize the first include as a special main module header and
> want
>    // to leave it in the top position.
>    IncludeDirective ID = {HashLoc, FilenameRange, FileName, IsAngled,
> false};
>
> Modified: clang-tools-extra/trunk/clang-tidy/modernize/
> DeprecatedHeadersCheck.cpp
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp?
> rev=331905&r1=331904&r2=331905&view=diff
> ============================================================
> ==================
> --- clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
> (original)
> +++ clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
> Wed May  9 11:27:37 2018
> @@ -30,7 +30,8 @@ public:
>                            StringRef FileName, bool IsAngled,
>                            CharSourceRange FilenameRange, const FileEntry
> *File,
>                            StringRef SearchPath, StringRef RelativePath,
> -                          const Module *Imported) override;
> +                          const Module *Imported,
> +                          SrcMgr::CharacteristicKind FileType) override;
>
>  private:
>    ClangTidyCheck &Check;
> @@ -94,7 +95,8 @@ IncludeModernizePPCallbacks::IncludeMode
>  void IncludeModernizePPCallbacks::InclusionDirective(
>      SourceLocation HashLoc, const Token &IncludeTok, StringRef FileName,
>      bool IsAngled, CharSourceRange FilenameRange, const FileEntry *File,
> -    StringRef SearchPath, StringRef RelativePath, const Module *Imported)
> {
> +    StringRef SearchPath, StringRef RelativePath, const Module *Imported,
> +    SrcMgr::CharacteristicKind FileType) {
>    // FIXME: Take care of library symbols from the global namespace.
>    //
>    // Reasonable options for the check:
>
> Modified: clang-tools-extra/trunk/clang-tidy/utils/IncludeInserter.cpp
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/utils/IncludeInserter.cpp?rev=331905&r1=331904&r2=331905&
> view=diff
> ============================================================
> ==================
> --- clang-tools-extra/trunk/clang-tidy/utils/IncludeInserter.cpp
> (original)
> +++ clang-tools-extra/trunk/clang-tidy/utils/IncludeInserter.cpp Wed May
> 9 11:27:37 2018
> @@ -25,7 +25,8 @@ public:
>                            bool IsAngled, CharSourceRange FileNameRange,
>                            const FileEntry * /*IncludedFile*/,
>                            StringRef /*SearchPath*/, StringRef
> /*RelativePath*/,
> -                          const Module * /*ImportedModule*/) override {
> +                          const Module * /*ImportedModule*/,
> +                          SrcMgr::CharacteristicKind /*FileType*/)
> override {
>      Inserter->AddInclude(FileNameRef, IsAngled, HashLocation,
>                           IncludeToken.getEndLoc());
>    }
>
> Modified: clang-tools-extra/trunk/clangd/ClangdUnit.cpp
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clangd/ClangdUnit.cpp?rev=331905&r1=331904&r2=331905&view=diff
> ============================================================
> ==================
> --- clang-tools-extra/trunk/clangd/ClangdUnit.cpp (original)
> +++ clang-tools-extra/trunk/clangd/ClangdUnit.cpp Wed May  9 11:27:37 2018
> @@ -93,7 +93,8 @@ public:
>                            StringRef FileName, bool IsAngled,
>                            CharSourceRange FilenameRange, const FileEntry
> *File,
>                            StringRef SearchPath, StringRef RelativePath,
> -                          const Module *Imported) override {
> +                          const Module *Imported,
> +                          SrcMgr::CharacteristicKind FileType) override {
>      auto SR = FilenameRange.getAsRange();
>      if (SR.isInvalid() || !File || File->tryGetRealPathName().empty())
>        return;
>
> Modified: clang-tools-extra/trunk/clangd/Headers.cpp
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clangd/Headers.cpp?rev=331905&r1=331904&r2=331905&view=diff
> ============================================================
> ==================
> --- clang-tools-extra/trunk/clangd/Headers.cpp (original)
> +++ clang-tools-extra/trunk/clangd/Headers.cpp Wed May  9 11:27:37 2018
> @@ -34,7 +34,8 @@ public:
>                            CharSourceRange /*FilenameRange*/,
>                            const FileEntry *File, llvm::StringRef
> /*SearchPath*/,
>                            llvm::StringRef /*RelativePath*/,
> -                          const Module * /*Imported*/) override {
> +                          const Module * /*Imported*/,
> +                          SrcMgr::CharacteristicKind /*FileType*/)
> override {
>      WrittenHeaders.insert(
>          (IsAngled ? "<" + FileName + ">" : "\"" + FileName + "\"").str());
>      if (File != nullptr && !File->tryGetRealPathName().empty())
>
> Modified: clang-tools-extra/trunk/modularize/CoverageChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/modularize/CoverageChecker.cpp?rev=331905&r1=331904&r2=331905&
> view=diff
> ============================================================
> ==================
> --- clang-tools-extra/trunk/modularize/CoverageChecker.cpp (original)
> +++ clang-tools-extra/trunk/modularize/CoverageChecker.cpp Wed May  9
> 11:27:37 2018
> @@ -90,7 +90,8 @@ public:
>                            StringRef FileName, bool IsAngled,
>                            CharSourceRange FilenameRange, const FileEntry
> *File,
>                            StringRef SearchPath, StringRef RelativePath,
> -                          const Module *Imported) override {
> +                          const Module *Imported,
> +                          SrcMgr::CharacteristicKind FileType) override {
>      Checker.collectUmbrellaHeaderHeader(File->getName());
>    }
>
>
> Modified: clang-tools-extra/trunk/modularize/PreprocessorTracker.cpp
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/modularize/PreprocessorTracker.cpp?rev=331905&r1=331904&r2=331905&
> view=diff
> ============================================================
> ==================
> --- clang-tools-extra/trunk/modularize/PreprocessorTracker.cpp (original)
> +++ clang-tools-extra/trunk/modularize/PreprocessorTracker.cpp Wed May  9
> 11:27:37 2018
> @@ -750,7 +750,8 @@ public:
>                            const clang::FileEntry *File,
>                            llvm::StringRef SearchPath,
>                            llvm::StringRef RelativePath,
> -                          const clang::Module *Imported) override;
> +                          const clang::Module *Imported,
> +                          clang::SrcMgr::CharacteristicKind FileType)
> override;
>    void FileChanged(clang::SourceLocation Loc,
>                     clang::PPCallbacks::FileChangeReason Reason,
>                     clang::SrcMgr::CharacteristicKind FileType,
> @@ -1289,7 +1290,7 @@ void PreprocessorCallbacks::InclusionDir
>      llvm::StringRef FileName, bool IsAngled,
>      clang::CharSourceRange FilenameRange, const clang::FileEntry *File,
>      llvm::StringRef SearchPath, llvm::StringRef RelativePath,
> -    const clang::Module *Imported) {
> +    const clang::Module *Imported, clang::SrcMgr::CharacteristicKind
> FileType) {
>    int DirectiveLine, DirectiveColumn;
>    std::string HeaderPath = getSourceLocationFile(PP, HashLoc);
>    getSourceLocationLineAndColumn(PP, HashLoc, DirectiveLine,
> DirectiveColumn);
>
> Modified: clang-tools-extra/trunk/pp-trace/PPCallbacksTracker.cpp
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/pp-trace/
> PPCallbacksTracker.cpp?rev=331905&r1=331904&r2=331905&view=diff
> ============================================================
> ==================
> --- clang-tools-extra/trunk/pp-trace/PPCallbacksTracker.cpp (original)
> +++ clang-tools-extra/trunk/pp-trace/PPCallbacksTracker.cpp Wed May  9
> 11:27:37 2018
> @@ -139,7 +139,7 @@ void PPCallbacksTracker::InclusionDirect
>      llvm::StringRef FileName, bool IsAngled,
>      clang::CharSourceRange FilenameRange, const clang::FileEntry *File,
>      llvm::StringRef SearchPath, llvm::StringRef RelativePath,
> -    const clang::Module *Imported) {
> +    const clang::Module *Imported, clang::SrcMgr::CharacteristicKind
> FileType) {
>    beginCallback("InclusionDirective");
>    appendArgument("IncludeTok", IncludeTok);
>    appendFilePathArgument("FileName", FileName);
>
> Modified: clang-tools-extra/trunk/pp-trace/PPCallbacksTracker.h
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/pp-trace/
> PPCallbacksTracker.h?rev=331905&r1=331904&r2=331905&view=diff
> ============================================================
> ==================
> --- clang-tools-extra/trunk/pp-trace/PPCallbacksTracker.h (original)
> +++ clang-tools-extra/trunk/pp-trace/PPCallbacksTracker.h Wed May  9
> 11:27:37 2018
> @@ -102,7 +102,8 @@ public:
>                            const clang::FileEntry *File,
>                            llvm::StringRef SearchPath,
>                            llvm::StringRef RelativePath,
> -                          const clang::Module *Imported) override;
> +                          const clang::Module *Imported,
> +                          clang::SrcMgr::CharacteristicKind FileType)
> override;
>    void moduleImport(clang::SourceLocation ImportLoc, clang::ModuleIdPath
> Path,
>                      const clang::Module *Imported) override;
>    void EndOfMainFile() override;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180509/34d07273/attachment-0001.html>


More information about the cfe-commits mailing list