[cfe-dev] Objective-C tidy up

David Chisnall csdavec at swansea.ac.uk
Wed Jun 18 03:22:12 PDT 2008


On 17 Jun 2008, at 19:06, Chris Lattner wrote:

> On Jun 16, 2008, at 7:23 AM, David Chisnall wrote:
>>> It would probably be useful to grep for other uses of VarDecl and
>>> ParamVarDecl to see if the code applies to self as well.  There may
>>> be other codepaths not being exercised by the testsuite.
>>
>> I've made ImplicitParamDecl a subclass of VarDecl instead of
>> ValueDecl.  It's not the ideal solution, but it does work.  The
>> ideal solution would be to rearrange the hierarchy around VarDecl
>> and stop implicit or explicit param decls from being subclasses of
>> this, but it will require quite invasive changes in a lot of the
>> analyses.
>
> Applied, thanks!

Great!  Now I need to resolve all of the conflicts this has caused  
with my other changes and hopefully I'll have the next instalment for  
you this afternoon.

> Please add some comments above the ImplicitParamDecl class indicating
> what it is used for.  It would also be nice to sink this down the
> class hierarchy, working with Ted as appropriate to identify the
> changes to the checker that are needed.

Will do.

>> I now get some warnings from clang that this file doesn't appear to
>> be expecting but, looking at the code, they all appear to be  
>> sensible:
>>
>> Warnings seen but not expected:
>> Line 1596: [CHECKER] Argument to 'NSString' method 'compare:'
>> cannot be nil.
>> Line 1600: [CHECKER] Argument to 'NSString' method
>> 'caseInsensitiveCompare:' cannot be nil.
>> Line 1604: [CHECKER] Argument to 'NSString' method
>> 'compare:options:' cannot be nil.
>> Line 1608: [CHECKER] Argument to 'NSString' method
>> 'compare:options:range:' cannot be nil.
>> Line 1612: [CHECKER] Argument to 'NSString' method
>> 'compare:options:range:locale:' cannot be nil.
>> Line 1615: [CHECKER] Argument to 'NSString' method
>> 'componentsSeparatedByCharactersInSet:' cannot be nil.
>> Line 1622: [CHECKER] Object allocated on line 1618 and stored into
>> 's4' is no longer referenced after this point and has a retain count
>> of +1 (object leaked).
>> Line 1635: [CHECKER] Reference-counted object is used after it is
>> released.
>
> Where are you seeing this?  make test passes for me.  Thanks a lot
> David,

I'm not on Darwin, so these tests aren't run when I do make test - I  
just ran the .mi file you sent and got these.  Possibly this file is  
generated from an older version of the .m?

David



More information about the cfe-dev mailing list