================ @@ -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 ---------------- steakhal wrote:
Couldn't we include the system header simulator here instead of defining these locks? https://github.com/llvm/llvm-project/pull/127049 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits