summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/CFRefCount.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Teach the CF retain checker about "_init" methods. Fixes: ↵Ted Kremenek2008-06-021-1/+1
| | | | | | <rdar://problem/5956379> llvm-svn: 51872
* Prototyped support in the BugReporter to emit diagnostics of the form "p now ↵Ted Kremenek2008-05-221-0/+4
| | | | | | aliases q". llvm-svn: 51453
* Expand retain/release checker to consider methods/function calls that cause aTed Kremenek2008-05-221-27/+31
| | | | | | | | | | tracked object to "escape": it's reference count might be incremented by the called function, thus causing an object's lifetime to extend beyond when the local reference count is decremented to 0. This addresses: <rdar://problem/5933215> llvm-svn: 51433
* Cache leaks by the allocation site, not the leak location.Ted Kremenek2008-05-161-28/+58
| | | | llvm-svn: 51198
* Rename IsPointerType to LVal::IsLValType, and update CFRefCount::EvalSummary ↵Ted Kremenek2008-05-091-3/+3
| | | | | | to use IsLValType when conjuring symbols for return values (this fixes a bug with an assertion firing in the analyzer when two qualified objective-c types were compared). llvm-svn: 50924
* Added support for "drain".Ted Kremenek2008-05-071-0/+4
| | | | llvm-svn: 50831
* Expand the CF retain checker to allow the Create/Get rule to apply to anyTed Kremenek2008-05-071-52/+57
| | | | | | | | | | | | function that returns a CFxxxRef, not just functions whose name begins with CF. This implements <rdar://problem/5917879>. Added test case for this feature. Updated calls to CStrInCStrNoCase to swap their arguments, per compatibility with strcasestr. llvm-svn: 50829
* Flip order of arguments to CStrInStrNoCase.Ted Kremenek2008-05-071-2/+2
| | | | llvm-svn: 50824
* Use llvm::CStrInCStrNoCase instead of strcasestr, since the latter is not ↵Ted Kremenek2008-05-071-2/+4
| | | | | | | | portable. Correctly check if the result of CStrInCStrNoCase is NULL to generate summaries; before we were inverting the condition. llvm-svn: 50822
* copy-paste: NS types are not typedefs.Ted Kremenek2008-05-071-7/+5
| | | | llvm-svn: 50817
* Do not treat **instance** methods "copyWithZone:" and "mutableCopyWithZone:" ↵Ted Kremenek2008-05-071-18/+1
| | | | | | from NSObject as allocators. llvm-svn: 50802
* Be less promiscuous with generating summaries for "new", "copy", "create".Ted Kremenek2008-05-071-3/+3
| | | | llvm-svn: 50798
* Added auto-summary generation for createXXX, copyXXX, newXXX methods.Ted Kremenek2008-05-071-16/+12
| | | | llvm-svn: 50795
* Don't report leaks for autoreleased objects.Ted Kremenek2008-05-061-42/+21
| | | | llvm-svn: 50777
* More comments.Ted Kremenek2008-05-061-73/+72
| | | | | | "#if 0" out some assumptions when auto-generating method summaries. llvm-svn: 50772
* Experiment with not converting bug names to lower case.Ted Kremenek2008-05-061-11/+38
| | | | llvm-svn: 50753
* Generate "stop" summaries for selectors involving receivers whose type is ↵Ted Kremenek2008-05-061-19/+92
| | | | | | not NSxxxx. llvm-svn: 50721
* Use strncmp correctly.Ted Kremenek2008-05-061-3/+3
| | | | llvm-svn: 50715
* Make string comparison legible and remove buffer overrun introduced by typo.Ted Kremenek2008-05-061-2/+2
| | | | llvm-svn: 50714
* String comparison cleanups.Ted Kremenek2008-05-061-1/+1
| | | | | | Added test case. llvm-svn: 50711
* Fix logic error in string processing.Ted Kremenek2008-05-061-1/+1
| | | | llvm-svn: 50710
* Remove assertion.Ted Kremenek2008-05-061-1/+0
| | | | llvm-svn: 50709
* Use EvalSummary to process message expressions, thereby unifying the checkerTed Kremenek2008-05-061-135/+64
| | | | | | | | | | | | logic for function calls and message expressions. Use the following heuristic to infer "allocating" instance methods: [ClassName classWithXXX] allocates an object Update testcase to reflect this heuristic. llvm-svn: 50708
* Added receiver effects to EvalSummary.Ted Kremenek2008-05-061-7/+43
| | | | llvm-svn: 50700
* Expand summaries to include "Receiver" effects.Ted Kremenek2008-05-061-16/+40
| | | | llvm-svn: 50697
* Added initialization code to generate initial set of ObjC method summaries ↵Ted Kremenek2008-05-061-3/+22
| | | | | | (non-instance methods). llvm-svn: 50690
* Added code to generate initial set of summaries for instance methods.Ted Kremenek2008-05-061-17/+55
| | | | llvm-svn: 50689
* Add summary generation for "initXXX" methods.Ted Kremenek2008-05-051-5/+47
| | | | llvm-svn: 50684
* Make CF retain diagnostics more succinct.Ted Kremenek2008-05-051-4/+5
| | | | | | In a leak's "name", indicate GC or non-GC bugs. llvm-svn: 50680
* Initial work on refactoring the CFRefCount checker so that it is moreTed Kremenek2008-05-051-108/+184
| | | | | | generic and handles reference counts for NSObjects. llvm-svn: 50674
* Improve leak diagnostics to not report a leak on the same line where Ted Kremenek2008-05-051-16/+80
| | | | | | | | | | | | | | | | the object was last used. This can be confusing to users. For example: // 'y' is leaked x = foo(y); instead: x = foo(y); // 'y' is leaked llvm-svn: 50661
* Improved leak diagnostics.Ted Kremenek2008-05-051-23/+63
| | | | llvm-svn: 50657
* Minor refactorings/cleanups in CF retain checker and added support for ↵Ted Kremenek2008-05-051-93/+68
| | | | | | | | NSMakeCollectable. Added test case for NSMakeCollectable. llvm-svn: 50653
* Improved diagnostics for leaks: now we report which variable was leaked.Ted Kremenek2008-05-021-5/+33
| | | | llvm-svn: 50588
* When running the reference count checker twice (GC and non-GC mode), only emitTed Kremenek2008-05-021-4/+8
| | | | | | basic warnings (dead stores, null dereferences) on the first pass. llvm-svn: 50584
* Fix copy-paste bug.Ted Kremenek2008-05-011-1/+1
| | | | llvm-svn: 50557
* Remove no longer valid assertion.Ted Kremenek2008-05-011-4/+0
| | | | llvm-svn: 50556
* Added line number diagnostics to indicate the allocation site of the leaked ↵Ted Kremenek2008-05-011-3/+53
| | | | | | object. llvm-svn: 50553
* Do not highlight bogus ranges for leaks.Ted Kremenek2008-05-011-2/+23
| | | | llvm-svn: 50549
* Correctly invalidate reference count state when passing objects by reference ↵Ted Kremenek2008-05-011-3/+38
| | | | | | in message expressions we don't understand. llvm-svn: 50541
* Renamed static method.Ted Kremenek2008-05-011-4/+4
| | | | llvm-svn: 50533
* When processing "release", "retain", and "autorelease" messages return theTed Kremenek2008-05-011-5/+5
| | | | | | | lval passed as an argument. Fix: Inverted diagnostic messages. llvm-svn: 50513
* Added support for "autorelease" message in CF ref. count checker.Ted Kremenek2008-05-011-15/+42
| | | | llvm-svn: 50512
* added preliminary diagnostics in scan-build results to denote whetherTed Kremenek2008-04-301-6/+52
| | | | | | a CF memory leak occurred with GC enabled, etc. llvm-svn: 50507
* Teach more of the static analyzer about ObjCQualifiedIdType.Ted Kremenek2008-04-301-1/+2
| | | | llvm-svn: 50494
* Teach the static analysis engine about ObjCQualifiedIdType.Ted Kremenek2008-04-301-2/+1
| | | | llvm-svn: 50493
* Update typestate logic to support GC-mode.Ted Kremenek2008-04-291-3/+8
| | | | llvm-svn: 50396
* Implement semantics of CFMakeCollectable for the CF-reference count checker.Ted Kremenek2008-04-291-29/+65
| | | | llvm-svn: 50395
* Provide the option to run the CF-retain checker in GC enabled mode.Ted Kremenek2008-04-291-4/+6
| | | | | | The transfer functions for the checker don't do anything special yet in GC mode. llvm-svn: 50394
* Do a better job at computing dead symbols.Ted Kremenek2008-04-251-15/+5
| | | | | | | | | Implemented support for better localized leaks in the CF reference count checker. Now leaks should be flagged close to where they occur. This should implement the desired functionality in <rdar://problem/5879592>, although the diagnostics still need to be improved. llvm-svn: 50241
OpenPOWER on IntegriCloud