aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis
AgeCommit message (Collapse)Author
2009-04-09clean up code with new API.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68693 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09Add a new method because sometimes the type of the conjured symbol is not theZhongxing Xu
type of the expression where we create the symbol. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68692 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09make a conjured symbol as the original code.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68691 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09clean up code with new API.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68687 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09Fix a null pointer dereference error due to state caching in a loop involvingTed Kremenek
sending a message to a nil receiver. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68686 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09Create a symbolic region instead of a loc::SymbolVal. This is a continued stepZhongxing Xu
to eliminate the use of loc::SymbolVal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68685 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09GRExprEngine: Don't try to reason about the size of 'void' for the return typeTed Kremenek
of messages sent to nil. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68683 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09Fix another regression introduced by changes to the analyzer's reasoning aboutTed Kremenek
nil receivers in message expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68672 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09Refactor/cleanup reasoning of nil receivers in message expressions.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68661 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Enhance analyzer reasoning about sending messages to nil. A nil receiver ↵Ted Kremenek
returns 0 for scalars of size <= sizeof(void*). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68629 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08New static analyzer check by Nikita Zhuk!Ted Kremenek
"The attached patch generates warnings of cases where an ObjC message is sent to a nil object and the size of return type of that message is larger than the size of void pointer. This may result in undefined return values as described in PR 2718. The patch also includes test cases." git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68585 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Remove hack from LiveVariables analysis where variables whose address are takenTed Kremenek
are considered 'live'. This hack isn't needed anymore because we have a separation in the path-sensitive analyzer between variable names and bindings; the analyzer can continue to reason about the storage of a variable after its name is no longer directly referenced. Now the live variables analysis literally means "is this name live". Along this line, update the dead stores checker to explicitly look for variables whose values have escaped. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68504 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Remove GetLeakNode. This isn't the right approach.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68502 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Remove period.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68497 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Eagerly compute the leak location when a leak occurs at the end of a path.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68496 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Removed some commented code.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68495 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07PathDiagnostic generation: experiment with avoiding generation of control-flowTed Kremenek
pieces between block entrance and block end unless necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68483 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07retain/release checker: When hunting for the leak location, don't walk theTed Kremenek
ExplodedGraph backwards. That may inadvertently result in reverse control-flow edges in the PathDiagostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68477 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Don't overguard to adding a control-flow piece when "alwaysAdd" is true.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68476 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06Rewrite control-flow diagnostic generation "extensive" algorithm using "edgeTed Kremenek
contexts". This allows us to use a stack of contexts to keep track of what control-flow pieces to include when exiting blocks like 'if', 'for', etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68473 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06PathDiagnosticLocation now also wraps Decls.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68470 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-03Sentence-case bug type.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-03retain/release checker: don't track NSPanel until we have better reasoning aboutTed Kremenek
the subtle ownership issues of such objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68397 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-03This is the first step to gradually remove the use of loc::SymbolVal. NowZhongxing Xu
when creating symbolic values, we distinguish between location and non-location values. For location values, we create a symbolic region instead of a loc::SymbolVal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68373 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-02Sentence-type bug type and category.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68345 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-02Add another null pointer check. Simplify condition.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68283 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-02Fix grammar.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68282 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-02Add null pointer check.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68281 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-02More title-casing of bug type names.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68275 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-02Title-case the names of bug types.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68274 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-02Title-case the names of bug types.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68273 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01BugReporter, extensive path-diagnostics: add an extra control-flow edge to theTed Kremenek
enclosing statement when jumping to a subexpression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68244 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01Fix comment.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68236 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01BugReporter: for extensive path diagnostics:Ted Kremenek
- When processing BlockEdges with terminators, using the condition as the control-flow point for terminators that are expressions (e.g., '&&', '?') - When processing events, allow intra-compound statement "jumping" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68228 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01BugReporter: for extensive PathDiagnostic generation, add control-flow from theTed Kremenek
start of the function/method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68217 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01BugReporter: For the "extensive" PathDiagnostic generation algorithm, elide mostTed Kremenek
intra-compound statement jumps unless they are between terminators (i.e., branches). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68216 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01Fix: <rdar://problem/6740387>. Sending nil to an object that returns a structTed Kremenek
should only be an error if that value is consumed. This fix was largely accomplished by moving 'isConsumedExpr' back to ParentMap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68195 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01- Changed PathDiagnosticPiece::getLocation() to return a PathDiagnosticLocationTed Kremenek
instead of a FullSourceLoc. This resulted in a bunch of small edits in various clients. - Updated BugReporter to include an alternate PathDiagnostic generation algorithm for PathDiagnosticClients desiring more control-flow pieces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68193 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-31More code reshuffling. No functionality change.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68157 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-31Allow two codepaths for PathDiagnostic generation. This patch mainly consists ofTed Kremenek
refactoring to make this possible (no functionality change). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68141 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30Re-apply 68028. The code had drifted enough that the tests would fail withoutTed Kremenek
it. Will discuss offline whether symbolic regions should by typed or typeless. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68070 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30Revert 68028.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68068 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30Remove dead code.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68063 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30Simplify more code by using SVal::getAsSymbol().Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68052 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30Simplify more code by using SVal::getAsSymbol() instead ofTed Kremenek
loc::SymbolVal/nonloc::SymbolVal probing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68049 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30Convert use of loc::SymbolVal and nonloc::SymbolVal to V.getAsSymbol(). ThisTed Kremenek
also makes this code more correct as it transparently handles SVals that wrapped TypedViewRegions(SymbolicRegions). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68048 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30Add version of GRExprEngine::AddCheck that registered a GRSimpleAPICheck thatTed Kremenek
will be called for every expression in a basic block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68041 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30Make SymbolicRegion untyped.Zhongxing Xu
Layer the type information with a TypedViewRegion on top of the SymbolicRegion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68028 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30Implement a FIXME.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68024 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-28Fix regression in pointer comparison with NULL (e.g., 0 != ptr). This fixesTed Kremenek
<rdar://problem/6732151>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67954 91177308-0d34-0410-b5e6-96231b3b80d8