[analyzer] Fix the matcher for GCDAntipattern to look for "signal" call in all parameters
rdar://38405904
llvm-svn: 327426
diff --git a/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp
index 51a3fc1..bb1bd85 100644
--- a/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp
@@ -121,11 +121,11 @@
hasCanonicalType(blockPointerType())
));
- auto ArgCallsSignalM = hasArgument(0, hasDescendant(callExpr(
+ auto ArgCallsSignalM = hasAnyArgument(stmt(hasDescendant(callExpr(
allOf(
callsName("dispatch_semaphore_signal"),
equalsBoundArgDecl(0, SemaphoreBinding)
- ))));
+ )))));
auto HasBlockAndCallsSignalM = allOf(HasBlockArgumentM, ArgCallsSignalM);