summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-05-25 18:23:36 +0000
committerChris Lattner <sabre@nondot.org>2009-05-25 18:23:36 +0000
commit23464b8f14d4a84fa419423362de2e95e49460b9 (patch)
treec3f704fd8a99a5085b3d8a2cbb72c55261829af2
parentae5342094afe2ccc11dfa15750f0753dab3ec820 (diff)
downloadbcm5719-llvm-23464b8f14d4a84fa419423362de2e95e49460b9.tar.gz
bcm5719-llvm-23464b8f14d4a84fa419423362de2e95e49460b9.zip
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
-rw-r--r--clang/lib/Sema/SemaChecking.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index 5a6babb3216..c4183a0e61b 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/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();
}
}
OpenPOWER on IntegriCloud