From ffcb4b43b799f518891088076ef083ca8f13c537 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bal=C3=A1zs=20K=C3=A9ri?= <1.int32@gmail.com> Date: Wed, 31 Mar 2021 15:28:53 +0200 Subject: [PATCH] Revert "[clang][Checkers] Extend PthreadLockChecker state dump (NFC)." This reverts commit 49c0ab6d7611050ae902f6369fc878e17da453ad. Test failures showed up because non-deterministic output. --- .../StaticAnalyzer/Checkers/PthreadLockChecker.cpp | 11 +--- clang/test/Analysis/pthreadlock_state.c | 67 ---------------------- 2 files changed, 1 insertion(+), 77 deletions(-) delete mode 100644 clang/test/Analysis/pthreadlock_state.c diff --git a/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp index eb10a42..88e80c4 100644 --- a/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp @@ -339,16 +339,7 @@ void PthreadLockChecker::printState(raw_ostream &Out, ProgramStateRef State, } } - DestroyRetValTy DRV = State->get(); - if (!DRV.isEmpty()) { - Out << Sep << "Mutexes in unresolved possibly destroyed state:" << NL; - for (auto I : DRV) { - I.first->dumpToStream(Out); - Out << ": "; - I.second->dumpToStream(Out); - Out << NL; - } - } + // TODO: Dump destroyed mutex symbols? } void PthreadLockChecker::AcquirePthreadLock(const CallEvent &Call, diff --git a/clang/test/Analysis/pthreadlock_state.c b/clang/test/Analysis/pthreadlock_state.c deleted file mode 100644 index dfbc104..0000000 --- a/clang/test/Analysis/pthreadlock_state.c +++ /dev/null @@ -1,67 +0,0 @@ -// RUN: %clang_analyze_cc1 -analyzer-checker=alpha.unix.PthreadLock,debug.ExprInspection 2>&1 %s | FileCheck %s - -#include "Inputs/system-header-simulator-for-pthread-lock.h" - -#define NULL 0 - -void clang_analyzer_printState(); - -pthread_mutex_t mtx; - -void test(pthread_mutex_t *mtx1) { - clang_analyzer_printState(); - // CHECK: "checker_messages": null - - pthread_mutex_init(&mtx, NULL); - clang_analyzer_printState(); - // CHECK: { "checker": "alpha.core.PthreadLockBase", "messages": [ - // CHECK-NEXT: "Mutex states:", - // CHECK-NEXT: "mtx: unlocked", - // CHECK-NEXT: "" - // CHECK-NEXT: ]} - - pthread_mutex_lock(&mtx); - clang_analyzer_printState(); - // CHECK: { "checker": "alpha.core.PthreadLockBase", "messages": [ - // CHECK-NEXT: "Mutex states:", - // CHECK-NEXT: "mtx: locked", - // CHECK-NEXT: "Mutex lock order:", - // CHECK-NEXT: "mtx", - // CHECK-NEXT: "" - // CHECK-NEXT: ]} - - pthread_mutex_unlock(&mtx); - clang_analyzer_printState(); - // CHECK: { "checker": "alpha.core.PthreadLockBase", "messages": [ - // CHECK-NEXT: "Mutex states:", - // CHECK-NEXT: "mtx: unlocked", - // CHECK-NEXT: "" - // CHECK-NEXT: ]} - - int ret = pthread_mutex_destroy(&mtx); - clang_analyzer_printState(); - // CHECK: { "checker": "alpha.core.PthreadLockBase", "messages": [ - // CHECK-NEXT: "Mutex states:", - // CHECK-NEXT: "mtx: unlocked, possibly destroyed", - // CHECK-NEXT: "Mutexes in unresolved possibly destroyed state:", - // CHECK-NEXT: "mtx: conj_$ - // CHECK-NEXT: "" - // CHECK-NEXT: ]} - - if (ret) - return; - - ret = pthread_mutex_destroy(mtx1); - clang_analyzer_printState(); - // CHECK: { "checker": "alpha.core.PthreadLockBase", "messages": [ - // CHECK-NEXT: "Mutex states:", - // CHECK-NEXT: "mtx: destroyed", - // CHECK-NEXT: "SymRegion{reg_$[[REG:[0-9]+]]}: not tracked, possibly destroyed", - // CHECK-NEXT: "Mutexes in unresolved possibly destroyed state:", - // CHECK-NEXT: "SymRegion{reg_$[[REG]]}: conj_$ - // CHECK-NEXT: "" - // CHECK-NEXT: ]} - if (ret) - return; - pthread_mutex_init(mtx1, NULL); -} -- 2.7.4