aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis
AgeCommit message (Collapse)Author
2008-07-26change more instances of QualType::getCanonicalType to callChris Lattner
ASTContext::getCanonicalType instead (PR2189) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54105 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-25Have the UnusedIvar check skip ivars with setters/getters created by ↵Ted Kremenek
@synthesize. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54050 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-25Remove call to isSEL and isSEL itself since the call is dead ↵Ted Kremenek
(isObjCObjectPointerType() will never return true for selectors). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54034 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-25Only warn about missing/incomplete -dealloc implementations when a class ↵Ted Kremenek
contains a non-SEL, non-IBOutlet ivar that references an ObjC object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54024 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-25Don't emit 'dead initialization' warnings for variables marked 'unused'.Ted Kremenek
This fixes PR 2573: http://llvm.org/bugs/show_bug.cgi?id=2573 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-24Use ASTContext::isObjCObjectPointerType() to check if an ivar is a reference ↵Ted Kremenek
to an Objective-C object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53999 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-24Correctly handle NSAssertionHandle ↵Ted Kremenek
-handleFailureInMethod:object:file:lineNumber:description: This fixes: http://llvm.org/bugs/show_bug.cgi?id=2593 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53993 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-24Don't issue a missing +dealloc warning for classes that just contain SEL ivars.Ted Kremenek
This fixes PR 2592: http://llvm.org/bugs/show_bug.cgi?id=2592 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53987 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-24Issue dead store warnings for preincrements involved in a subexpression.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53983 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-23Don't flag dead stores when the result of a preincrement/predecrement is ↵Ted Kremenek
used in an enclosing expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53964 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-23Further refine dead store checking to distinguish between dead stores and ↵Ted Kremenek
dead increments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53960 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-23Properly skip IBOutlets when checking for unused ivars.Ted Kremenek
Refine the error message of unused ivars. Added test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53957 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-23Ivar access mode ObjCIvarDecl::None == ObjCIvarDecl::Protected, not private.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53953 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-23Add prototype implementation of unused ivar check.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53942 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-22Moved registration of basic path-sensitive checks from GRSimpleVals.cpp to ↵Ted Kremenek
GRExprEngineInternalChecks.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53909 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-22Rename file.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53906 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-22Added path-sensitive checking for null pointer values passed to function ↵Ted Kremenek
arguments marked nonnull. This implements <rdar://problem/6069935> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53891 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-18"currentHandler" is a nullary selectorTed Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53763 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-18Fix caching bug.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53759 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-18Add panic support for NSAssertionHandler.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53758 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-18Add panic function.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53755 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-18Fix 80 col violationTed Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53754 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-18Fix regression by explicitly checking if we are negating a SymIntConstantVal.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53753 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-18Improve path-sensitivity when using the logical not operator.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53752 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-18Renamed deterministic EvalBinOp to DetermEvalBinOpNN. This name mangling is ↵Ted Kremenek
unfortunately needed because virtual methods with the same name can be hidden by subclasses. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53751 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-18Created ValueStateSet class to manage the creation of multiple states by a ↵Ted Kremenek
method. Modified the new EvalBinOpNN to generate states instead of nodes. This is a much simpler interface and is what clients will want to do. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53750 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-17Update signature of EvalAssume.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53745 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-17Move GRTransferFunc* into ValueStateManager, and move the assumption logic ↵Ted Kremenek
there as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53743 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-17Remove redundant logic.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53740 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-17Begin major changes to EvalXXX methods in GRTransferFuncs. Currently some ↵Ted Kremenek
of the methods only return an RVal; we want them to be able to create an arbitrary number of states. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53739 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-17Moved RemoveDeadBindings logic for the contents of 'Store' to a virtual ↵Ted Kremenek
RemoveDeadBindings method in StoreManager. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53726 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-16Fix regression introduced by ↵Ted Kremenek
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20080714/006514.html. The regression was the casts from integers to pointers where not being handled: they would just return UnknownVal. This would greatly decrease path-sensitivity. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53659 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-15Fix transfer function logic in GRSimpleVals for integer casts: only support ↵Ted Kremenek
casts from integers to integers. This fixes a crash reported by Anders Carlsson! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53649 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-15For the MissingDealloc check, don't treat IBOutlet ivars as being needed to ↵Ted Kremenek
be released git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53647 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-15Distinguish between dead stores and dead initializations.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53628 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-15isRetain() and isRelease() now only returns true if "Retain"/"Release" ↵Ted Kremenek
appears in the suffix of a function's name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53621 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-15Support retain/release tracking for CoreGraphics (CGxxxRef) objects.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53617 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14Refactor Dead Stores error reporting to use the simplified ↵Ted Kremenek
BugReporter::EmitBasicReport interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53573 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14Added method "EmitBasicReport" to BugReporter to simplify the emission of ↵Ted Kremenek
simple bug diagnostics. Refactored error reporting in CheckObjCDealloc and CheckObjCInstMethSignature to use this new bug reporting interface (major code simplification). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53560 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-11Tidy up error message.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53493 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-11Add new check: -check-objc-methodsigs. This check scans methods inTed Kremenek
ObjCImplementationDecls and sees if a ancestor class defines a method with the same selector but with a different type signature. Right now it just compares return types, and mainly looks at differences in primitive values. The checking will be expanded in the future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53482 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-11Fix comment.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53473 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-11Refactored auditor interface within GRExprEngine and GRCoreEngine to use a ↵Ted Kremenek
"batch auditor" to dispatch to specialized auditors instead of having a separate vector for each audited Expr*. This not only provides a much cleaner implementation, but also allows us to install auditors for any expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53464 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10Refactored most of the "Store" piece of ValueState into a Store type. TheTed Kremenek
current store implementation is now encapsulated by BasicStore. These changes prompted some long due constification of ValueState. Much of the diffs in this patch include adding "const" qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53423 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10Remove unused class AnnotatedPath.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53413 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10Move some environment methods from ValueState/ValueStateManager to ↵Ted Kremenek
Environment/EnvironmentManager. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53412 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09Remove getParentMap() from GRExprEngine.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53343 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09Fix PR2519: correctly handle CFDictionaryCreate.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53334 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-08Initial work on splitting the ValueState into an Environment, Store, andTed Kremenek
Constraints. These concepts are already present in the current ValueState, but the implementation is monolothic. Making ValueState more modular opens up new design choices for customizing the analysis engine. In the context of the analysis engine, the "Environment" is the binding between Expr* (expressions) and intermediate symbolic values (RValues). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53252 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07Updated clients of ImmutableMap::SlimFind to use ImmutableMap::lookup instead.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53172 91177308-0d34-0410-b5e6-96231b3b80d8