Skip to content
Snippets Groups Projects
Commit 23464b8f authored by Chris Lattner's avatar Chris Lattner
Browse files

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);
        ^

llvm-svn: 72393
parent ae534209
No related branches found
No related tags found
No related merge requests found
...@@ -793,9 +793,10 @@ Sema::CheckNonNullArguments(const NonNullAttr *NonNull, const CallExpr *TheCall) ...@@ -793,9 +793,10 @@ Sema::CheckNonNullArguments(const NonNullAttr *NonNull, const CallExpr *TheCall)
{ {
for (NonNullAttr::iterator i = NonNull->begin(), e = NonNull->end(); for (NonNullAttr::iterator i = NonNull->begin(), e = NonNull->end();
i != e; ++i) { i != e; ++i) {
const Expr *ArgExpr = TheCall->getArg(*i)->IgnoreParenCasts(); const Expr *ArgExpr = TheCall->getArg(*i);
if (ArgExpr->isNullPointerConstant(Context)) if (ArgExpr->isNullPointerConstant(Context))
Diag(ArgExpr->getLocStart(), diag::warn_null_arg); Diag(TheCall->getCallee()->getLocStart(), diag::warn_null_arg)
<< ArgExpr->getSourceRange();
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment