]> granicus.if.org Git - clang/commitdiff
tweak non-null check to put the caret on the function, but underline the
authorChris Lattner <sabre@nondot.org>
Mon, 25 May 2009 18:23:36 +0000 (18:23 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 25 May 2009 18:23:36 +0000 (18:23 +0000)
argument.  This avoids the argument from being silenced when the argument is
the NULL macro, which is defined in a system header.  This also makes the output
a bit nicer, e.g.:

t.c:8:3: warning: null passed to a callee which requires a non-null argument
  func1(NULL, cp2, i1);
  ^     ~~~~

vs something like:

t.c:8:10: warning: argument is null where non-null is required
  func1(NULL, cp2, i1);
        ^

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72393 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaChecking.cpp

index 5a6babb3216c85473204f170c7bd70db044cd9e2..c4183a0e61b1edf592fc2631e0fb28f52ff9c807 100644 (file)
@@ -793,9 +793,10 @@ Sema::CheckNonNullArguments(const NonNullAttr *NonNull, const CallExpr *TheCall)
 {
   for (NonNullAttr::iterator i = NonNull->begin(), e = NonNull->end();
        i != e; ++i) {
-    const Expr *ArgExpr = TheCall->getArg(*i)->IgnoreParenCasts();
+    const Expr *ArgExpr = TheCall->getArg(*i);
     if (ArgExpr->isNullPointerConstant(Context))
-      Diag(ArgExpr->getLocStart(), diag::warn_null_arg);
+      Diag(TheCall->getCallee()->getLocStart(), diag::warn_null_arg)
+        << ArgExpr->getSourceRange();
   }
 }