Author: Podchishchaeva, Mariya Date: 2023-07-24T05:31:55-07:00 New Revision: 0cb2906cdfb3480382828890e9ac4c076c17f3fa
URL: https://github.com/llvm/llvm-project/commit/0cb2906cdfb3480382828890e9ac4c076c17f3fa DIFF: https://github.com/llvm/llvm-project/commit/0cb2906cdfb3480382828890e9ac4c076c17f3fa.diff LOG: [NFC][clang] Fix static analyzer concerns HeaderIncludesCallback and HeaderIncludesJSONCallback classes may own resources and free them in the destructor. However they don't have copy user-written constructors/assignment operators, so an attempt to copy a HeaderIncludesCallback object will use compiler-generated copy constructor which will only do dummy copy and afterwards there will be use-after-free issues. Reviewed By: aaron.ballman, tahonermann Differential Revision: https://reviews.llvm.org/D155842 Added: Modified: clang/lib/Frontend/HeaderIncludeGen.cpp Removed: ################################################################################ diff --git a/clang/lib/Frontend/HeaderIncludeGen.cpp b/clang/lib/Frontend/HeaderIncludeGen.cpp index 9ada227d42d622..9c1bf490fcd65e 100644 --- a/clang/lib/Frontend/HeaderIncludeGen.cpp +++ b/clang/lib/Frontend/HeaderIncludeGen.cpp @@ -43,6 +43,9 @@ class HeaderIncludesCallback : public PPCallbacks { delete OutputFile; } + HeaderIncludesCallback(const HeaderIncludesCallback &) = delete; + HeaderIncludesCallback &operator=(const HeaderIncludesCallback &) = delete; + void FileChanged(SourceLocation Loc, FileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID) override; @@ -90,6 +93,10 @@ class HeaderIncludesJSONCallback : public PPCallbacks { delete OutputFile; } + HeaderIncludesJSONCallback(const HeaderIncludesJSONCallback &) = delete; + HeaderIncludesJSONCallback & + operator=(const HeaderIncludesJSONCallback &) = delete; + void EndOfMainFile() override; void FileChanged(SourceLocation Loc, FileChangeReason Reason, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits