Author: rnk Date: Wed Nov 4 18:24:01 2015 New Revision: 252107 URL: http://llvm.org/viewvc/llvm-project?rev=252107&view=rev Log: Fix nullptr crash in -Wthread-safety-beta
Modified: cfe/trunk/include/clang/Analysis/Analyses/ThreadSafetyCommon.h cfe/trunk/test/SemaCXX/warn-thread-safety-analysis.cpp Modified: cfe/trunk/include/clang/Analysis/Analyses/ThreadSafetyCommon.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/Analyses/ThreadSafetyCommon.h?rev=252107&r1=252106&r2=252107&view=diff ============================================================================== --- cfe/trunk/include/clang/Analysis/Analyses/ThreadSafetyCommon.h (original) +++ cfe/trunk/include/clang/Analysis/Analyses/ThreadSafetyCommon.h Wed Nov 4 18:24:01 2015 @@ -287,7 +287,7 @@ public: } const ValueDecl* valueDecl() const { - if (Negated) + if (Negated || CapExpr == nullptr) return nullptr; if (auto *P = dyn_cast<til::Project>(CapExpr)) return P->clangDecl(); Modified: cfe/trunk/test/SemaCXX/warn-thread-safety-analysis.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/warn-thread-safety-analysis.cpp?rev=252107&r1=252106&r2=252107&view=diff ============================================================================== --- cfe/trunk/test/SemaCXX/warn-thread-safety-analysis.cpp (original) +++ cfe/trunk/test/SemaCXX/warn-thread-safety-analysis.cpp Wed Nov 4 18:24:01 2015 @@ -5182,3 +5182,10 @@ void test() { } // end namespace LockableUnions +// This used to crash. +class acquired_before_empty_str { + void WaitUntilSpaceAvailable() { + lock_.ReaderLock(); // expected-note {{acquired here}} + } // expected-warning {{mutex 'lock_' is still held at the end of function}} + Mutex lock_ ACQUIRED_BEFORE(""); +}; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits