From 4ceebbf54d8724f153fd7e8c64fe89b42fc2b1cd Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Wed, 16 Mar 2011 00:22:51 +0000 Subject: VariadicMethodTypeChecker: don't warn for null pointer constants passed to variadic Objective-C methods. llvm-svn: 127719 --- clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'clang/lib/StaticAnalyzer') diff --git a/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp b/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp index 8677f08ab9b..792b720b8fb 100644 --- a/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp @@ -584,12 +584,17 @@ void VariadicMethodTypeChecker::checkPreObjCMessage(ObjCMessage msg, // Verify that all arguments have Objective-C types. llvm::Optional errorNode; + const GRState *state = C.getState(); for (unsigned I = variadicArgsBegin; I != variadicArgsEnd; ++I) { QualType ArgTy = msg.getArgType(I); if (ArgTy->isObjCObjectPointerType()) continue; + // Ignore pointer constants. + if (isa(msg.getArgSVal(I, state))) + continue; + // Generate only one error node to use for all bug reports. if (!errorNode.hasValue()) { errorNode = C.generateNode(); -- cgit v1.2.3