summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Added "getBindings" and "BindingAsString" to GRStateManager and StoreManager.Ted Kremenek2008-08-292-32/+59
| | | | | | | Migrated CFRefCount.cpp to use getBindings and BindingsAsString instead of making assumptions about the Store (removed dependence on GRState::vb_iterator). llvm-svn: 55522
* Remove BasicStore.h (migrated function prototype for CreateBasicStore() to ↵Ted Kremenek2008-08-282-2/+0
| | | | | | Store.h) llvm-svn: 55519
* Remove Regions.h and Regions.cpp, since we are now using an even more ↵Ted Kremenek2008-08-281-34/+0
| | | | | | abstract representation of "memory regions" in the static analyzer. llvm-svn: 55515
* Make store "Regions" and "Bindings" more abstract instead of concrete variants.Ted Kremenek2008-08-282-13/+23
| | | | | | | | Their precise semantics will be implemented by a specific StoreManager. Use function pointer to create the StoreManager in GRStateManager. This matches how we create ConstraintsManager. llvm-svn: 55514
* Fixed analyzer caching bug involving the transfer function for loads.Ted Kremenek2008-08-281-4/+5
| | | | llvm-svn: 55494
* Fixed analyzer caching bug in DeclStmt.Ted Kremenek2008-08-281-22/+11
| | | | llvm-svn: 55487
* Make the destructor of ConstraintManager virtual.Ted Kremenek2008-08-271-1/+5
| | | | llvm-svn: 55448
* Refactor Assume logic into a separate class ConstraintManager.Zhongxing Xu2008-08-273-239/+299
| | | | llvm-svn: 55412
* Added "Auditor" interface for auditing the construction of ExplodedGraphs.Ted Kremenek2008-08-271-0/+23
| | | | llvm-svn: 55403
* Make implementation of ExplodedNodeImpl::addPredecessor out-of-line.Ted Kremenek2008-08-271-0/+6
| | | | llvm-svn: 55402
* Remove default value for 'Pred' argument to GRCoreEngineImpl::GenerateNode().Ted Kremenek2008-08-261-1/+1
| | | | llvm-svn: 55392
* Added 'extents' for Regions.Ted Kremenek2008-08-253-27/+52
| | | | | | | Added 'getExtent()' to StoreManager. Implemented 'getExtent()' for BasicStoreManager. llvm-svn: 55321
* adjust to changes in various APIs from LLVM. We can't printChris Lattner2008-08-233-8/+13
| | | | | | | | an APInt directly to an ostream now, so add some hacks. It would be better to switch all of the bugreport (and friends) stuff over to raw_ostream. llvm-svn: 55264
* Simplify interface to Store::AddDeclTed Kremenek2008-08-232-7/+12
| | | | llvm-svn: 55213
* Modify comments.Zhongxing Xu2008-08-211-2/+3
| | | | llvm-svn: 55150
* Move the handling of DeclStmt from GRExprEngine to BasicStoreManager.Zhongxing Xu2008-08-213-70/+88
| | | | llvm-svn: 55144
* Patch by Zhongxing Xu:Ted Kremenek2008-08-202-34/+50
| | | | | | This patch moves some code in GRStateManager::RemoveDeadBindings() to EnvironmentManager::RemoveDeadBindings(). llvm-svn: 55064
* Patch by Zhongxing Xu: We should set back the modified ConstEq map.Ted Kremenek2008-08-201-1/+2
| | | | llvm-svn: 55060
* Move store pretty-printing logic inside of StoreManager (previously in GRState).Ted Kremenek2008-08-192-19/+28
| | | | llvm-svn: 55013
* Patch by Zhongxing Xu!Ted Kremenek2008-08-193-47/+42
| | | | | | | This patch extends BasicStoreManager::getInitialStore() to include code that symbolicates input variables. It also removes redundant handling of ImplicitParamDecl, since it is a subclass of VarDecl. llvm-svn: 54993
* Add ExplicitCastExpr to replace the current CastExpr, and have ↵Argyrios Kyrtzidis2008-08-182-21/+5
| | | | | | | | | | | ImplicitCastExpr and ExplicitCastExpr derive from a common base class (CastExpr): Expr -> CastExpr -> ExplicitCastExpr -> ImplicitCastExpr llvm-svn: 54955
* various updates to match r54873 on mainline.Chris Lattner2008-08-173-7/+6
| | | | llvm-svn: 54874
* Migrate the retain/release checker to not manage the RefBindings::Factory objectTed Kremenek2008-08-171-46/+24
| | | | | | directly, but instead have GRStateManager manage it. llvm-svn: 54862
* Migrate GRState::ConstEqTy (map used from tracking constants for symbols) to ↵Ted Kremenek2008-08-171-27/+26
| | | | | | use the generic data map instead. llvm-svn: 54860
* Added GRStateTrait.h, which includes boilerplate code for creating ↵Ted Kremenek2008-08-171-38/+4
| | | | | | | | specializations of GRStateTrait<>. Modified GRStateTrait<ConstNotEq> in GRState to use the boilerplate in GRStateTrait<> for ImmutableMaps. llvm-svn: 54859
* It's spelt "uninitialized".Nick Lewycky2008-08-161-4/+5
| | | | llvm-svn: 54848
* GRState:Ted Kremenek2008-08-163-162/+132
| | | | | | | | | | | | | | - Remove ConstNotEq from GRState/GRStateManager (!= tracking uses GDM instead). - GRStateManager now can book-keep "contexts" (e.g., factory objects) for uses with data elements stored into the GDM. - Refactor pretty-printing of states to use GRState::Printer objects exclusively. This removed a huge amount of pretty-printing logic from GRExprEngine. CFRefCount - Simplified some API calls based on refinements to the GDM api. llvm-svn: 54835
* Default initialize only pointers and integer types (for now).Ted Kremenek2008-08-141-0/+9
| | | | llvm-svn: 54798
* Migrated retain/release checker to use the Generic Data Map in GRState (insteadTed Kremenek2008-08-142-148/+146
| | | | | | | | | | | | | | of using CheckerState). Removed CheckerState from GRState. Added class GRStateRef which wraps GRState* and GRStateManager*. This is handy for generating new states with a single handle. Added member template set/get functions to GRStateRef/GRState/GRStateManager for accessing the Generic Data Map. llvm-svn: 54788
* Renamed GRState::CheckerStatePrinter to GRState::Printer.Ted Kremenek2008-08-133-26/+44
| | | | | | Updated checker state printer interface to allow transfer functions to return an arbitrary number of GRState::Printers. llvm-svn: 54762
* Rename ValueState.h -> GRState.hTed Kremenek2008-08-131-0/+0
| | | | | | Rename ValueState.cpp -> GRState.cpp llvm-svn: 54722
* Rename ValueState -> GRState.Ted Kremenek2008-08-1310-323/+323
| | | | | | Rename ValueStateManager -> GRStateManager. llvm-svn: 54721
* Initialize tracked local variables to undefined.Ted Kremenek2008-08-132-5/+11
| | | | llvm-svn: 54716
* Fix memory leak found by Sam Bishop: delete WList in the dstor of ↵Ted Kremenek2008-08-131-0/+3
| | | | | | GRCoreEngineImpl. llvm-svn: 54714
* Added GenericDataMap as a component of ValueState.Ted Kremenek2008-08-121-0/+1
| | | | llvm-svn: 54704
* More cleanups. Add missing #include.Ted Kremenek2008-08-121-32/+7
| | | | llvm-svn: 54699
* More summary generation refactoring.Ted Kremenek2008-08-121-21/+23
| | | | llvm-svn: 54696
* Add variadic addInstMethSummary() and refactored addPanicSummary() to use ↵Ted Kremenek2008-08-121-85/+46
| | | | | | | | this method. (code reduction). Misc. cleanups. llvm-svn: 54694
* More #include cleaningDaniel Dunbar2008-08-113-0/+3
| | | | | | | | - Drop {Decl.h,DeclObjC.h,IdentifierTable.h} from Expr.h - Moved Sema::getCurMethodDecl() out of line (dependent on ObjCMethodDecl via dyn_cast). llvm-svn: 54629
* * Remove isInSystemHeader() from DiagClient, move it to SourceManagerNico Weber2008-08-101-13/+1
| | | | | | | | | | | | | | | | * Move FormatError() from TextDiagnostic up to DiagClient, remove now empty class TextDiagnostic * Make DiagClient optional for Diagnostic This fixes the following problems: * -html-diags (and probably others) does now output the same set of warnings as console clang does * nothing crashes if one forgets to call setHeaderSearch() on TextDiagnostic * some code duplication is removed llvm-svn: 54620
* rename PreDefinedExpr -> PredefinedExprChris Lattner2008-08-101-2/+2
| | | | llvm-svn: 54605
* Added FIXME.Ted Kremenek2008-08-091-0/+1
| | | | llvm-svn: 54568
* Don't use Expr::isIntegerConstantExpr just to check if a pointer value is ↵Ted Kremenek2008-08-091-13/+9
| | | | | | initialize to NULL. llvm-svn: 54563
* Added AssumeSymGT, AssumeSymGE, AssumeSymLT, AssumeSymLE to add some minor ↵Ted Kremenek2008-08-071-26/+94
| | | | | | improvements to path-sensitivity. Right now we basically treat 'x > y' and 'x < y' as implying 'x != y', but this restriction will only inevitably apply to our must rudimentary value tracking component (we'll implement more advanced value reasoning later). llvm-svn: 54493
* Don't flag any dead stores for variables marked unused.Ted Kremenek2008-08-071-1/+1
| | | | llvm-svn: 54492
* Added decl_iterator to DeclStmt to provide an abstract interface to iterate ↵Ted Kremenek2008-08-053-6/+8
| | | | | | | | over the ScopedDecls of a DeclStmt. Updated a few clients of DeclStmt::getNextDeclarator() to use decl_iterator instead. Will update other clients after additional testing. llvm-svn: 54368
* Change 'dead store (++/--)' to 'dead increment'Ted Kremenek2008-08-021-1/+1
| | | | llvm-svn: 54268
* Enhanced path-sensitive return-of-stack-address check to print out the name ↵Ted Kremenek2008-07-311-9/+21
| | | | | | of the variable whose address was returned. llvm-svn: 54253
* Add range highlighting for path-sensitive return-of-stack-address check.Ted Kremenek2008-07-301-5/+18
| | | | llvm-svn: 54219
* remove some unneeded calls to getCanonicalTypeChris Lattner2008-07-261-2/+1
| | | | llvm-svn: 54106
OpenPOWER on IntegriCloud