Author: Ben Shi
Date: 2023-11-15T18:17:32+08:00
New Revision: 0f7f8dbcf5ec06cb1ea8912ffd234523f60a61be
URL: 
https://github.com/llvm/llvm-project/commit/0f7f8dbcf5ec06cb1ea8912ffd234523f60a61be
DIFF: 
https://github.com/llvm/llvm-project/commit/0f7f8dbcf5ec06cb1ea8912ffd234523f60a61be.diff

LOG: [clang][analyzer] Restrict 'fopen' modeling to POSIX versions in 
SimpleStreamChecker (#72016)

Added: 
    

Modified: 
    clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp
    clang/test/Analysis/stream-non-posix-function.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp 
b/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp
index 32d95e944195390..2ac9f65c9793f45 100644
--- a/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp
@@ -90,7 +90,7 @@ class SimpleStreamChecker : public Checker<check::PostCall,
 REGISTER_MAP_WITH_PROGRAMSTATE(StreamMap, SymbolRef, StreamState)
 
 SimpleStreamChecker::SimpleStreamChecker()
-    : OpenFn({"fopen"}), CloseFn({"fclose"}, 1) {
+    : OpenFn({"fopen"}, 2), CloseFn({"fclose"}, 1) {
   // Initialize the bug types.
   DoubleCloseBugType.reset(
       new BugType(this, "Double fclose", "Unix Stream API Error"));

diff  --git a/clang/test/Analysis/stream-non-posix-function.c 
b/clang/test/Analysis/stream-non-posix-function.c
index 70b3ab25d026532..c6dc65afe788bbf 100644
--- a/clang/test/Analysis/stream-non-posix-function.c
+++ b/clang/test/Analysis/stream-non-posix-function.c
@@ -1,4 +1,6 @@
 // RUN: %clang_analyze_cc1 -fno-builtin 
-analyzer-checker=core,alpha.unix.Stream -verify %s
+// RUN: %clang_analyze_cc1 -fno-builtin 
-analyzer-checker=core,alpha.unix.SimpleStream -verify %s
+
 // expected-no-diagnostics
 
 typedef struct _FILE FILE;


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

Reply via email to