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

Reply via email to