From: Jordy Rose Date: Wed, 31 Aug 2011 18:33:45 +0000 (+0000) Subject: [analyzer] Fix varargs helper to only use POD types even for named arguments. Thanks... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1af9d9e5f6d0f07917c01b1017620104dbbc0e7f;p=clang [analyzer] Fix varargs helper to only use POD types even for named arguments. Thanks, Joerg. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138875 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp b/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp index f713bc648b..80c4d33947 100644 --- a/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp @@ -79,14 +79,14 @@ void NoReturnFunctionChecker::checkPostStmt(const CallExpr *CE, C.generateSink(CE); } -static bool END_WITH_NULL isMultiArgSelector(Selector Sel, ...) { +static bool END_WITH_NULL isMultiArgSelector(const Selector *Sel, ...) { va_list argp; va_start(argp, Sel); unsigned Slot = 0; const char *Arg; while ((Arg = va_arg(argp, const char *))) { - if (!Sel.getNameForSlot(Slot).equals(Arg)) + if (!Sel->getNameForSlot(Slot).equals(Arg)) break; // still need to va_end! ++Slot; } @@ -124,12 +124,12 @@ void NoReturnFunctionChecker::checkPostObjCMessage(const ObjCMessage &Msg, default: return; case 4: - if (!isMultiArgSelector(Sel, "handleFailureInFunction", "file", + if (!isMultiArgSelector(&Sel, "handleFailureInFunction", "file", "lineNumber", "description", NULL)) return; break; case 5: - if (!isMultiArgSelector(Sel, "handleFailureInMethod", "object", "file", + if (!isMultiArgSelector(&Sel, "handleFailureInMethod", "object", "file", "lineNumber", "description", NULL)) return; break;