From: Anders Carlsson Date: Sat, 6 Nov 2010 14:58:53 +0000 (+0000) Subject: Don't warn when matching %p to nullptr. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=624259984448cf19f4e94b7e31c7c32e99a39ea5;p=clang Don't warn when matching %p to nullptr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118344 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/FormatString.cpp b/lib/Analysis/FormatString.cpp index 388b9d34a2..c1b5ea8a65 100644 --- a/lib/Analysis/FormatString.cpp +++ b/lib/Analysis/FormatString.cpp @@ -296,8 +296,8 @@ bool ArgTypeResult::matchesType(ASTContext &C, QualType argTy) const { } case CPointerTy: - return argTy->getAs() != NULL || - argTy->getAs() != NULL; + return argTy->isPointerType() || argTy->isObjCObjectPointerType() || + argTy->isNullPtrType(); case ObjCPointerTy: return argTy->getAs() != NULL; diff --git a/test/SemaCXX/nullptr.cpp b/test/SemaCXX/nullptr.cpp index 4f6e2e6eb1..666701c3c6 100644 --- a/test/SemaCXX/nullptr.cpp +++ b/test/SemaCXX/nullptr.cpp @@ -93,3 +93,12 @@ namespace test2 { f(10, nullptr); } } + +namespace test3 { + void f(const char*, ...) __attribute__((format(printf, 1, 2))); + + void g() { + // Don't warn when using nullptr with %p. + f("%p", nullptr); + } +}