[clang] [clang][analyzer] Fix false positive of BlockInCriticalSectionChecker (PR #127049)
Balazs Benics via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 14 03:16:06 PST 2025
================
@@ -0,0 +1,50 @@
+// RUN: %clang_analyze_cc1 \
+// RUN: -analyzer-checker=unix.BlockInCriticalSection \
+// RUN: -std=c++11 \
+// RUN: -analyzer-output text \
+// RUN: -verify %s
+
+// expected-no-diagnostics
+
+namespace std {
+ struct mutex {
+ void lock() {}
+ void unlock() {}
+ };
+ template<typename T>
+ struct lock_guard {
+ lock_guard<T>(std::mutex) {}
+ ~lock_guard<T>() {}
+ };
+ template<typename T>
+ struct unique_lock {
+ unique_lock<T>(std::mutex) {}
+ ~unique_lock<T>() {}
+ };
+ template<typename T>
+ struct not_real_lock {
+ not_real_lock<T>(std::mutex) {}
+ };
+ } // namespace std
+
+std::mutex mtx;
+using ssize_t = long long;
+using size_t = unsigned long long;
+int open (const char *__file, int __oflag, ...);
+ssize_t read(int fd, void *buf, size_t count);
+void close(int fd);
+#define O_RDONLY 00
+# define O_NONBLOCK 04000
----------------
steakhal wrote:
I'd try `clang-format -i clang/test/Analysis/issue-124474.cpp`, and if that wouldn't work, I'd move out the test file to clang/lib for instance and invoke clang-format for it there and move it back.
https://github.com/llvm/llvm-project/pull/127049
More information about the cfe-commits
mailing list