diff options
-rw-r--r-- | include/clang/Checker/PathSensitive/CheckerVisitor.def | 10 | ||||
-rw-r--r-- | include/clang/Checker/PathSensitive/CheckerVisitor.h | 7 |
2 files changed, 13 insertions, 4 deletions
diff --git a/include/clang/Checker/PathSensitive/CheckerVisitor.def b/include/clang/Checker/PathSensitive/CheckerVisitor.def index e68c148556..4f9c48c2fe 100644 --- a/include/clang/Checker/PathSensitive/CheckerVisitor.def +++ b/include/clang/Checker/PathSensitive/CheckerVisitor.def @@ -21,8 +21,9 @@ PREVISIT(ArraySubscriptExpr, Stmt) PREVISIT(BinaryOperator, Stmt) -PREVISIT(CallExpr, Stmt) -PREVISIT(CXXOperatorCallExpr, CallExpr) +PREVISIT(CallExpr, GenericCall) +PREVISIT(CXXOperatorCallExpr, GenericCall) +PREVISIT(CXXMemberCallExpr, GenericCall) PREVISIT(DeclStmt, Stmt) PREVISIT(ObjCAtSynchronizedStmt, Stmt) PREVISIT(ObjCMessageExpr, Stmt) @@ -30,8 +31,9 @@ PREVISIT(ReturnStmt, Stmt) POSTVISIT(BlockExpr, Stmt) POSTVISIT(BinaryOperator, Stmt) -POSTVISIT(CallExpr, Stmt) -POSTVISIT(CXXOperatorCallExpr, CallExpr) +POSTVISIT(CallExpr, GenericCall) +POSTVISIT(CXXOperatorCallExpr, GenericCall) +POSTVISIT(CXXMemberCallExpr, GenericCall) POSTVISIT(ObjCMessageExpr, Stmt) #undef PREVISIT diff --git a/include/clang/Checker/PathSensitive/CheckerVisitor.h b/include/clang/Checker/PathSensitive/CheckerVisitor.h index e2ba89bca1..6d45bd3546 100644 --- a/include/clang/Checker/PathSensitive/CheckerVisitor.h +++ b/include/clang/Checker/PathSensitive/CheckerVisitor.h @@ -79,6 +79,13 @@ break; } } + void PreVisitGenericCall(CheckerContext &C, const CallExpr *CE) { + static_cast<ImplClass*>(this)->PreVisitStmt(C, CE); + } + void PostVisitGenericCall(CheckerContext &C, const CallExpr *CE) { + static_cast<ImplClass*>(this)->PostVisitStmt(C, CE); + } + void PreVisitStmt(CheckerContext &C, const Stmt *S) { *C.respondsToCallback = false; } |