On Thu, Mar 24, 2011 at 6:32 PM, Nick Lewycky <[email protected]> wrote:

> We implement __attribute__((nonnull)), but only test for it on CallExpr
> nodes. When calling a constructor, the AST only has a CXXConstructorExpr
> with no CallExpr, so the warning doesn't fire. This patch adds the same test
> that CallExpr uses to CXXConstructorExpr.
>
> Please review!
>

LGTM

I find a few things about the existing code strange, but your patch doesn't
introduce any of them.

Why do we loop over attributes inside of CheckNonNull... as well as in the
callers? I understand why the caller loop is necessary, I don't understand
why we still need the inner loop, or why we don't sink the callers' loops
into CheckNonNull, but maybe other code needs this.

Also, It seems like the location of the argument which is erroneously NULL
would be a better location than the location of the call...
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to