aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis
AgeCommit message (Collapse)Author
2009-05-20Add special cases to retain checker for 'create' methods in QCView, ↵Ted Kremenek
QCRenderer, and CIContext (Apple APIs). This fixes: <rdar://problem/6902710> clang: false positives w/QC and CoreImage methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72187 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-20Treat AllocaRegion as SymbolicRegion in RegionStore::Retrieve().Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72166 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-20* API change: we need to pass GRState to GRExprEngine::EvalBinOp() becauseZhongxing Xu
RegionStore needs to know the type of alloca region. * RegionStoreManager::EvalBinOp() now converts the alloca region to its first element region, as what is done to symbolic region. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72164 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Fix PR 4230: Don't flag leaks of NSAutoreleasePools until we know that we ↵Ted Kremenek
aren' at the top-most scope of autorelease pools. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72065 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Silence a Release-Asserts warning.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72013 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Fix: <rdar://problem/6893565> False positive: don't flag leaks for return ↵Ted Kremenek
types that cannot be determined to be CF types git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71921 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Fix another bug in BugReporter where we wouldn't always select the bug ↵Ted Kremenek
report in a bug equivalence class with the shortest path. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71920 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Fix crash when deriving the enclosing summary of a method whose first ↵Ted Kremenek
selector slot has a null IdentifierInfo*. This happens when analyzing Growl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71857 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Remove extra whitespace character in string literal. Purely cosmetic.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71847 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Use dyn_cast instead of cast to allow our assumptions to be safely wrong.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71843 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Cleanup internal checks bug reporting, allowing intermediate diagnostics to ↵Ted Kremenek
be generated for bad argument warnings, bad branches, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71838 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15BugReporter (extensive diagnostics): Do not include the range of target '}'Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71832 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15PathDiagnosticLocation::asRange(): for a PathDiagnosticLocation, the range ↵Ted Kremenek
of a DeclStmt is only the decl, not the decl + initializer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71831 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15BugReporter (extensive diagnostics): Add control-flow piece to '}' inTed Kremenek
loop body when generating 'Looping back to the head of the loop' diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71829 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-14Fix <rdar://problem/6859457> [NSData dataWithBytesNoCopy] does not return a ↵Ted Kremenek
retained object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71797 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-13Enhance diagnostics value tracking logic for null dereferences and ↵Ted Kremenek
uninitialized values. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71700 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-13Fix crasher reported in PR 4209 caused by an invalid summaryTed Kremenek
generation when EvalObjCMessageExpr() did not resolve the ObjCInterfaceDecl* for a receiver when the receiver's symbolic value wasn't being explicitly tracked. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71685 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-13Fix crasher in CFRefCount.cpp reported by Nikita Zhuk due to recently added ↵Ted Kremenek
autorelease tracking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71647 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-12Fix: <rdar://problem/6320065> false positive - init method returns an object ↵Ted Kremenek
owned by caller Now 'init' methods are treated by the retain/release checker as claiming their receiver and allocating a new object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71579 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-12Add logic for invalidating array region to CFRefCount.cpp. When invalidatingZhongxing Xu
array region, set its default value to conjured symbol. When retrieving its element, create new region value symbol for the element. Also fix some 80 columns violations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71548 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-12Fix <rdar://problem/6877235> Classes typedef-ed to CF objects should get the ↵Ted Kremenek
same treatment as CF objects This was accomplished by having 'isTypeRef' recursively walk the typedef stack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71538 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11BugReport::getEndPath() - Only add a Stmt's range to the constructed ↵Ted Kremenek
PathDiagnosticEventPiece if the BugReport contained no explicit ranges. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71516 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11When stripping element regions for invalidating region values, treat ↵Ted Kremenek
FieldRegions and ObjCIvarRegions as "base" regions in addition to VarRegions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71488 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11EdgeBuilder: DeclStmts and BinaryOperators are not the enclosing location ↵Ted Kremenek
context when they are used as initialization code for loops. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71480 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11EdgeBuilder::cleanUpLocation() should used the PathDiagnosticLocation ↵Ted Kremenek
constructor for a single point, not a range. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71477 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11BugReporter (extensive diagnostics): Add EdgeBuilder::cleanUpLocation for ↵Ted Kremenek
canonicalization locations and use this in both popLocation and rawAddEdge. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71470 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11Fix regression reported in <rdar://problem/6866843>. The analyzer should ↵Ted Kremenek
extend the lifetime of an object stored to a container. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71452 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11Fix a bug found by Thomas Clement where 'return [[[NSString alloc] init] ↵Ted Kremenek
autorelease]' would emit a false 'too many overreleases' error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71432 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11TypedRegion is a too general assumption. Usually we only want to invalidateZhongxing Xu
the VarRegion as a super region of an ElementRegion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71431 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11When retrieving an ElementRegion, if its super region is a StringRegion,Zhongxing Xu
retrieve the string value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71430 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11Fix a bug that leads to infinite loop. Set the correct element type toZhongxing Xu
ElementRegion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71428 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-10Add special warning about returning a retained object where a GC'ed object ↵Ted Kremenek
is expected. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71397 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-10retain/release checker: Flag a warning for non-owned objects returnedTed Kremenek
where an owned one is expected. Also add preliminary checking for returning a positive retain count object in GC mode where an owned GC object is expected. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71388 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-10analyzer:Ted Kremenek
- Improve -autorelease diagnostics. - Improve VLA diagnostics. - Use "short description" for bug when outputting to TextDiagnostics git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71383 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09When casting VarRegion, if the var type is aggregate type and the cast-toZhongxing Xu
pointee type is scalar type, create element region regardless with the sizes of types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71360 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09Remove the rest TypedViewRegion processing code. There should be noZhongxing Xu
TypedViewRegion usage in region store. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71359 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09When evaluating pointer arithmetic, if the base location is a symbolic region,Zhongxing Xu
convert it to the first element region. Also do not assume the array region is typed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71358 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09Do not create a TypedViewRegion when the base struct region is a symbolicZhongxing Xu
region. In the future we may set the cast-to type as the same time. But for now, we simply leave it as it is. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71357 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09Do not layer a TypedViewRegion when casting symbolic or alloca regions.Zhongxing Xu
Modify getLValueElement accordingly. Now we don't require base region to be a typed region. Do not create TypedViewRegion when base region is symbolic or alloca region. We can do so because each element region has its type information. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71355 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09Remove the case for casting to compatible type in Zhongxing Xu
RegionStoreManager::CastRegion(). This case should be subsumed by others. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71353 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09Rename:Zhongxing Xu
SymbolRegionRValue => SymbolRegionValue SymExpr::RegionRValue => SymExpr::RegionValueKind git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71322 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09As discussed with Ted, rename TypedRegion::getObjectType() to Zhongxing Xu
TypedRegion::getValueType(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71321 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09Add back analyzer support for ns_returns_retained and cf_returns_retained.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71309 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09It lives! The retain/release checker now tracks objects that are sentTed Kremenek
'autorelease'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71307 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09rename: MemRegion:Zhongxing Xu
RValueType => ObjectType LValueType => LocationType No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71304 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09More hacking on autorelease errors. We now can emit basic errors (disabled forTed Kremenek
now until ready). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71303 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09Put most of the boilerplate logic in place for reporting autorelease errors.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71301 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-08retain/release checker: Add stub for HandleAutoreleaseCounts.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71290 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-08Fix PR4182.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71288 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-08retain/release checker: Refactor error-reporting code in EvalDeadSymbols andTed Kremenek
EvalEndPath. This sets the stage for handling autorelease counts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71283 91177308-0d34-0410-b5e6-96231b3b80d8