forked from OSchip/llvm-project
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
This commit is contained in:
parent
ae5342094a
commit
23464b8f14
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue