[cfe-commits] r86959 - /cfe/trunk/lib/Analysis/PthreadLockChecker.cpp
Ted Kremenek
kremenek at apple.com
Wed Nov 11 22:26:58 PST 2009
Author: kremenek
Date: Thu Nov 12 00:26:58 2009
New Revision: 86959
URL: http://llvm.org/viewvc/llvm-project?rev=86959&view=rev
Log:
PthreadLockChecker doesn't need PreVisitCallExpr() yet. All the current logic should be done in PostVisitCallExpr()
Modified:
cfe/trunk/lib/Analysis/PthreadLockChecker.cpp
Modified: cfe/trunk/lib/Analysis/PthreadLockChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/PthreadLockChecker.cpp?rev=86959&r1=86958&r2=86959&view=diff
==============================================================================
--- cfe/trunk/lib/Analysis/PthreadLockChecker.cpp (original)
+++ cfe/trunk/lib/Analysis/PthreadLockChecker.cpp Thu Nov 12 00:26:58 2009
@@ -30,7 +30,6 @@
static int x = 0;
return &x;
}
- void PreVisitCallExpr(CheckerContext &C, const CallExpr *CE);
void PostVisitCallExpr(CheckerContext &C, const CallExpr *CE);
void AcquireLock(CheckerContext &C, const CallExpr *CE,
@@ -55,8 +54,9 @@
Eng.registerCheck(new PthreadLockChecker());
}
-void PthreadLockChecker::PreVisitCallExpr(CheckerContext &C,
- const CallExpr *CE) {
+
+void PthreadLockChecker::PostVisitCallExpr(CheckerContext &C,
+ const CallExpr *CE) {
const GRState *state = C.getState();
const Expr *Callee = CE->getCallee();
const CodeTextRegion *R =
@@ -66,7 +66,7 @@
return;
llvm::StringRef FName = R->getDecl()->getName();
-
+
if (FName == "pthread_mutex_lock") {
if (CE->getNumArgs() != 1)
return;
@@ -76,22 +76,8 @@
if (CE->getNumArgs() != 1)
return;
AcquireLock(C, CE, state->getSVal(CE->getArg(0)), true);
- }
-}
-
-void PthreadLockChecker::PostVisitCallExpr(CheckerContext &C,
- const CallExpr *CE) {
- const GRState *state = C.getState();
- const Expr *Callee = CE->getCallee();
- const CodeTextRegion *R =
- dyn_cast_or_null<CodeTextRegion>(state->getSVal(Callee).getAsRegion());
-
- if (!R)
- return;
-
- llvm::StringRef FName = R->getDecl()->getName();
-
- if (FName == "pthread_mutex_unlock") {
+ }
+ else if (FName == "pthread_mutex_unlock") {
if (CE->getNumArgs() != 1)
return;
ReleaseLock(C, CE, state->getSVal(CE->getArg(0)));
More information about the cfe-commits
mailing list