PATCH: private ivars

David Blaikie dblaikie at gmail.com
Mon Feb 18 16:28:53 PST 2013


On Mon, Feb 18, 2013 at 4:24 PM, Adrian Prantl <aprantl at apple.com> wrote:

>
> On Feb 15, 2013, at 3:59 PM, Dmitri Gribenko <gribozavr at gmail.com> wrote:
> >
> > +    ObjCInterfaceDecl* decl = cast<ObjCInterfaceType>(Ty)->getDecl();
> > +    if (decl)
> >
> > cast<> can not return null (it will either succeed or assert in
> > +Asserts mode, or just produce a wrong value in -Asserts).  Use
> > dyn_cast (that returns null on failure) or drop the check -- whatever
> > is appropriate.  And there's a dyn_cast idiom:
> >
> > if (Foo *F = dyn_cast<Foo>(Blah))
> > ... use F...
>
> I'm actually not checking the return value from cast<>() but the the
> result of getDecl() [which just happens to also return an
> ObjCInterfaceDecl]. Do you think I should use a temporary for the result of
> the cast to make it clearer?


Then you're missing test cases, because dyn_cast doesn't propagate null. It
should fail if you pass it null.

You  probably want cast_or_null.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130218/ced7c972/attachment.html>


More information about the cfe-commits mailing list