From: Chris Lattner Date: Mon, 25 May 2009 18:23:36 +0000 (+0000) Subject: tweak non-null check to put the caret on the function, but underline the X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=12b97ff9ce1412e388444f03049bfa6ad1bb5eb9;p=clang tweak non-null check to put the caret on the function, but underline the 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 --- diff --git a/lib/Sema/SemaChecking.cpp b/lib/Sema/SemaChecking.cpp index 5a6babb321..c4183a0e61 100644 --- a/lib/Sema/SemaChecking.cpp +++ b/lib/Sema/SemaChecking.cpp @@ -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(); } }