- Aug 12, 2011
-
-
Ted Kremenek authored
[analyzer] Introduce new MemRegion, "TypedValueRegion", so that we can separate TypedRegions that implement getValueType() from those that don't. Patch by Olaf Krzikalla! llvm-svn: 137498
-
Anna Zaks authored
1) Change SymbolDependTy map to keep pointers as data. And other small tweaks like making the DenseMap smaller 64->16 elements; remove removeSymbolDependencies() as it will probably not be used. 2) Do not mark dependents live more then once. llvm-svn: 137401
-
- Aug 11, 2011
-
-
Anna Zaks authored
Analyzer Core: Adding support for user-defined symbol dependencies. (For example, the allocated resource symbol only needs to be freed if no error has been returned by the allocator, so a checker might want to make the lifespan of the error code symbol depend on the allocated resource symbol.) Note, by default, the map that holds the dependencies will get destroyed along with the SymbolManager at the end of function exploration. llvm-svn: 137309
-
Anna Zaks authored
Cleanup: remove CleanedSate member and GetState() wrapper from StmtNodeBuilder, not needed as of r137273. llvm-svn: 137284
-
Anna Zaks authored
llvm-svn: 137279
-
Anna Zaks authored
Analyzer Core: In checkDeadSymbols checker callback, provide the state in which the symbols are not yet deleted so that checkers could inspect them. Since we are now always creating a transition in ProcessStmt(), remove the logic for adding a transition when none was generated. TODO: the extra transitions will have to be removed; more cleanups; a checker that tests teh new fucntionality. llvm-svn: 137273
-
- Aug 06, 2011
-
-
Ted Kremenek authored
[analyzer] Start sketching out a new BugReporterVisitor that inspects branches and other expressions to generate interesting path events in diagnostics. llvm-svn: 137012
-
Ted Kremenek authored
[analyzer] Simplify logic for ExprEngine::VisitUnaryExprOrTypeTraitExpr to avoid recursion to subexpression. This exposed bugs in the live variables analysis, and a latent analyzer bug in the SymbolReaper. llvm-svn: 137006
-
Ted Kremenek authored
[analyzer] Change SymbolReaper to store region roots implied by the Environment, allowing it be queried when determining if symbols derived from regions are still live. llvm-svn: 137005
-
Anna Zaks authored
KeychainAPI checker: Track SymbolMetadata instead of MemRegion in checker state so that we could clear the state on evalDeadSymbols; also track the return value. llvm-svn: 137003
-
- Aug 05, 2011
-
-
Anna Zaks authored
KeychainAPI checker: Generate an error on double allocation. Pull out getAsPointeeMemoryRegion so that it could be reused. llvm-svn: 136952
-
- Aug 04, 2011
-
-
Anna Zaks authored
KeychainAPI checker: Track additional pair of SecKeychain APIs. Also, keep exploring the transition on which a call to allocator function failed (to be able to find errors in examples like ErrorCodesFromDifferentAPISDoNotInterfere). llvm-svn: 136930
-
Anna Zaks authored
KeychainAPI checker: Refactor to make it easier to add more allocator/deallocator API pairs. Add the allocator function ID to the checker state. Better comments. llvm-svn: 136889
-
Anna Zaks authored
llvm-svn: 136852
-
Anna Zaks authored
KeychainAPI checker: Add basic diagnostics. Track MemoryRegion istead of SymbolicRef since the address might not be a symbolic value in some cases, for example in fooOnlyFree() test. llvm-svn: 136851
-
Ted Kremenek authored
llvm-svn: 136849
-
Ted Kremenek authored
[analyzer] rename all experimental checker packages to have 'experimental' be the common root package. llvm-svn: 136835
-
- Aug 03, 2011
-
-
Ted Kremenek authored
[analyzer] Introduce MallocOverflowSecurityChecker, a simple flow-sensitive checker that may be useful for security auditing. This checker is currently too noisy to be on by default. llvm-svn: 136804
-
Anna Zaks authored
Static Analyzer diagnostics visualization: when the last location on a path is end of the function, the arrow should point to the closing brace, not the statement before it. Patch by Ted Kremenek. llvm-svn: 136761
-
- Aug 02, 2011
-
-
Ted Kremenek authored
[analyzer] Drastically simplify ExprEngine::VisitInitListExpr() by assuming all initializer expressions have already been evaluated. llvm-svn: 136706
-
Anna Zaks authored
KeychainAPI checker: only check the paths on which the allocator function returned noErr. (+ minor cleanup) llvm-svn: 136694
-
Anna Zaks authored
Add a skeleton for the Keychain Services API Checker. Register it as OSX experimental for now. Note, the checker still does not handle tracking of escaped values, taking into account the return value of the allocator functions, nor the actual bug reporting.. llvm-svn: 136659
-
- Jul 31, 2011
-
-
Benjamin Kramer authored
llvm-svn: 136581
-
- Jul 29, 2011
-
-
Ted Kremenek authored
[analyzer] Remove recursive visitation in ExprEngine::VisitDeclStmt because it isn't needed anymore. llvm-svn: 136522
-
Ted Kremenek authored
[analyzer] Remove recursive visitation in ExprEngine::VisitCompoundLiteralExpr because it isn't needed anymore. llvm-svn: 136521
-
Ted Kremenek authored
[analyzer] Remove recursive visitation in ExprEngine::VisitCastExpr because it isn't needed anymore. llvm-svn: 136520
-
Ted Kremenek authored
[analyzer] Remove recursive visitation in ExprEngine::VisitObjCForCollectionStmt because it isn't needed anymore. llvm-svn: 136519
-
Ted Kremenek authored
[analyzer] Remove explicit argument processing from ExprEngine::VisitObjCMessage() since it is no longer needed. llvm-svn: 136518
-
Ted Kremenek authored
[analyzer] Remove recursive visitation in ExprEngine::VisitLValObjCIvarRefExpr because it isn't needed anymore. llvm-svn: 136517
-
Ted Kremenek authored
llvm-svn: 136516
-
Ted Kremenek authored
[analyzer] Remove recursive visitation in ExprEngine::VisitObjCPropertyRefExpr because it isn't needed anymore. llvm-svn: 136515
-
Ted Kremenek authored
[analyzer] Remove recursive visitation in ExprEngine::VisitCallExpr because it isn't needed anymore. llvm-svn: 136514
-
Ted Kremenek authored
[analyzer] Remove recursive visitation in ExprEngine::VisitMemberExpr because it isn't needed anymore. llvm-svn: 136513
-
Ted Kremenek authored
[analyzer] Remove recursive visitation in ExprEngine::VisitLvalArraySubscriptExpr() because it is no longer needed. llvm-svn: 136512
-
Chandler Carruth authored
llvm-svn: 136434
-
Ted Kremenek authored
Really remove FlatStoreManager and BasicStoreManager, this time from the driver. Also remove associated tests. Sorry for the messy commits; this is the result of a botched Git merge. llvm-svn: 136422
-
Ted Kremenek authored
Remove FlatStoreManager and BasicStoreManager. The latter has long been obsolete and the former has no had development in a long time. llvm-svn: 136420
-
Ted Kremenek authored
[analyzer] Overhaul how the static analyzer expects CFGs by forcing CFGs to be linearized only when used by the static analyzer. This required a rewrite of LiveVariables, and exposed a ton of subtle bugs. The motivation of this large change is to drastically simplify the logic in ExprEngine going forward. Some fallout is that the output of some BugReporterVisitors is not as accurate as before; those will need to be fixed over time. There is also some possible performance regression as RemoveDeadBindings will be called frequently; this can also be improved over time. llvm-svn: 136419
-
Ted Kremenek authored
[analyzer] fix bug in malloc checker where the tracked symbol would not properly be removed from the state. llvm-svn: 136418
-
Ted Kremenek authored
[analyzer] Add StoreManager::includedInBindings() to to query whether a region is used in any bindings. llvm-svn: 136416
-