summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Only track integer and pointer values.Zhongxing Xu2009-03-091-2/+5
| | | | llvm-svn: 66419
* Now we do not retrieve untyped regions.Zhongxing Xu2009-03-091-8/+7
| | | | llvm-svn: 66418
* Fix a serious bug in RegionStore: we got the new state with new store fromZhongxing Xu2009-03-091-4/+2
| | | | | | Bind() and BindStruct(), but we returned a state with the old store. llvm-svn: 66409
* Create PathDiagnosticPiece subclasses PathDiagnosticEventPiece andTed Kremenek2009-03-063-29/+25
| | | | | | | | PathDiagnosticControlFlowPiece to distinguish (in the class hierarchy) between events and control-flow diagnostic pieces. Clients must now use these directly when constructing PathDiagnosticPieces. llvm-svn: 66310
* Start work on subclassing PathDiagnosticPiece to distinguish more between ↵Ted Kremenek2009-03-061-0/+6
| | | | | | control-flow pieces, events, etc. llvm-svn: 66291
* Fix regression: initialize 'size' for PathDiagnostic to 0.Ted Kremenek2009-03-061-4/+14
| | | | | | Add some assertions along the way... llvm-svn: 66265
* Like PathDiagnosticPieces, strip trailing periods at the end of ↵Ted Kremenek2009-03-061-0/+14
| | | | | | PathDiagnostic descriptions llvm-svn: 66263
* Fix another GRExprEngine::VisitCast regression: handle casts of void* to ↵Ted Kremenek2009-03-051-1/+16
| | | | | | function pointers. llvm-svn: 66211
* Minor tweak: Recognize 'CGCF' prefix in addition to 'CF' and 'CG'.Ted Kremenek2009-03-051-1/+11
| | | | llvm-svn: 66208
* Fix regression in GRExprEngine::VisitCast: Do not wrap symbolic function ↵Ted Kremenek2009-03-051-23/+26
| | | | | | pointers with TypedViewRegions. llvm-svn: 66187
* Retrofit some basic tracking of ivars (for the current object) into BasicStore.Ted Kremenek2009-03-051-30/+85
| | | | llvm-svn: 66166
* Minor code compaction. No functionality change.Ted Kremenek2009-03-051-11/+5
| | | | llvm-svn: 66165
* Rename VarBindings -> Bindings.Ted Kremenek2009-03-051-15/+15
| | | | llvm-svn: 66164
* BasicStore:Ted Kremenek2009-03-053-19/+24
| | | | | | | | | | | | | - Store bindings using a MemRegion -> SVal binding instead of VarDecl -> SVal binding. This mirrors some of the idea of RegionStore, but is far simpler and not nearly as functional. This leads to some code simplification and some potential for some minor precision hacks. Along the way... - constify the use of MemRegion* in a few places - add operator<<(llvm::raw_ostream, const MemRegion*) llvm-svn: 66163
* Add initial support for tracking ivars, with special handling for ivars of ↵Ted Kremenek2009-03-051-8/+33
| | | | | | 'self'. llvm-svn: 66133
* Add 'cast<>' to remove an extra function call and dynamic cast.Ted Kremenek2009-03-051-2/+2
| | | | llvm-svn: 66131
* More fixes in cast logic.Ted Kremenek2009-03-051-16/+9
| | | | llvm-svn: 66130
* GRExprEngine: Polish up handling of casting integer constants to pointers ↵Ted Kremenek2009-03-051-2/+8
| | | | | | and back. llvm-svn: 66127
* Fix regression in transparent translation of nonloc::ConcreteInto to ↵Ted Kremenek2009-03-051-10/+17
| | | | | | loc::ConcreteInt. llvm-svn: 66125
* Fix message titleTed Kremenek2009-03-051-1/+1
| | | | llvm-svn: 66110
* For now, do not track NSWindow objects and it's subclasses.Ted Kremenek2009-03-041-0/+13
| | | | llvm-svn: 66107
* Add prototype support for invalidating fields for structures passed-by-referenceTed Kremenek2009-03-041-18/+71
| | | | | | | to unknown functions. Most of this logic should be eventually moved to RegionStore and be made lazy. llvm-svn: 66094
* MemRegion:Ted Kremenek2009-03-041-2/+3
| | | | | | | | | - Have 'TypedRegion::getRValueType()' return a null QualType for 'id<...>' instead of aborting. - Change 'TypedRegion::isBoundable()' to return true for all objects with a non-null RValueType (this may not be the final behavior). llvm-svn: 66093
* Add an optional "tag" to conjured symbols that allows us to distinguish betweenTed Kremenek2009-03-041-3/+4
| | | | | | | | multiple symbols conjured at the same location. All that is required of the tag is that it is a fixed void* value that points to an memory address that remains valid throughout the remainder of the lifetime of the SymbolManager. llvm-svn: 66092
* GRExprEngine::VisitCast: Just pass through function and block pointers.Ted Kremenek2009-03-041-0/+6
| | | | llvm-svn: 66036
* Adjust indentation.Zhongxing Xu2009-03-041-1/+1
| | | | llvm-svn: 66022
* Added the notion of a "boundable region", which is a region that can have a ↵Ted Kremenek2009-03-042-7/+17
| | | | | | direct binding in the StoreManager. llvm-svn: 66005
* RegionStore: Handle implicit parameters.Ted Kremenek2009-03-041-3/+5
| | | | llvm-svn: 65987
* Create "TypedViewRegions" that layer on top of SymbolicRegions when handlingTed Kremenek2009-03-041-5/+23
| | | | | | pointer-to-pointer casts involving symbolic locations. llvm-svn: 65984
* Use GetSValAsScalarOrLoc instead of GetSVal to prevent unintended structure ↵Ted Kremenek2009-03-041-16/+16
| | | | | | or array "loads". llvm-svn: 65983
* Add "GetSValAsScalarOrLoc" methods to GRState/GRStateRef that only perform aTed Kremenek2009-03-041-2/+2
| | | | | | retrieval from the store/environment for locations or scalar types. llvm-svn: 65982
* RegionStore::RemoveDeadBindings needs to check all the symbols of the super ↵Ted Kremenek2009-03-041-0/+20
| | | | | | region of a scanned region as well. llvm-svn: 65981
* Rework use of loc::SymbolVal in the retain/release checker to use the new methodTed Kremenek2009-03-035-70/+94
| | | | | | | | | | | SVal::getAsLocSymbol(). This simplifies the code and allows the retain/release checker to (I believe) also correctly reason about location symbols wrapped in SymbolicRegions. Along the way I cleaned up SymbolRef a little, disallowing implicit casts to 'unsigned'. llvm-svn: 65972
* Don't use std::auto_ptr with getSubRegionMap().Ted Kremenek2009-03-033-7/+6
| | | | llvm-svn: 65957
* Fix case where we should use dyn_cast instead of cast.Ted Kremenek2009-03-031-1/+1
| | | | llvm-svn: 65956
* Fix extra ';' bug noticed by Mike Stump.Ted Kremenek2009-03-031-1/+1
| | | | llvm-svn: 65954
* Implement FIXME: GRStateManager::scanReachableSymbols now supports scanning ↵Ted Kremenek2009-03-034-21/+80
| | | | | | MemRegions. llvm-svn: 65919
* Add StoreManager::getSubRegionMap(). This method returns an opaque mapping ↵Ted Kremenek2009-03-032-0/+58
| | | | | | for clients of StoreManagers from MemRegions to their subregions. llvm-svn: 65914
* BugReporter: Construct path-related PathDiagnosticPieces with kind ↵Ted Kremenek2009-03-021-11/+21
| | | | | | "ControlFlow". llvm-svn: 65876
* For now, do not output the 'DisplayHint' in plist files.Ted Kremenek2009-03-021-4/+4
| | | | llvm-svn: 65860
* remove an implemented fixme.Zhongxing Xu2009-03-021-2/+0
| | | | llvm-svn: 65817
* Initial support for pointer arithmetic. Only support concrete indexes and Zhongxing Xu2009-03-022-1/+31
| | | | | | offsets for now. llvm-svn: 65814
* Rename lib/Driver (etc) to lib/Frontend in prep for the *actual*Daniel Dunbar2009-03-021-1/+1
| | | | | | driver taking lib/Driver. llvm-svn: 65811
* Rename AnonTypedRegion to TypedViewRegion.Ted Kremenek2009-03-015-17/+17
| | | | llvm-svn: 65764
* Adjust wording of bug names.Ted Kremenek2009-03-011-8/+8
| | | | llvm-svn: 65763
* Revert 65707 (causes stack memory to be referenced after it is released).Ted Kremenek2009-02-281-3/+3
| | | | llvm-svn: 65717
* remove static ctor.Chris Lattner2009-02-281-3/+3
| | | | llvm-svn: 65707
* improve compatibility with the VC++'08 C++ compiler. Patch byChris Lattner2009-02-281-1/+2
| | | | | | Niklas Larsson! llvm-svn: 65706
* When retrieving the location of a Node, for MemberExprs use the location of theTed Kremenek2009-02-271-1/+7
| | | | | | '.' or '->'. llvm-svn: 65651
* Create a new TypeNodes.def file that enumerates all of the types,Douglas Gregor2009-02-262-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | giving them rough classifications (normal types, never-canonical types, always-dependent types, abstract type representations) and making it far easier to make sure that we've hit all of the cases when decoding types. Switched some switch() statements on the type class over to using this mechanism, and filtering out those things we don't care about. For example, CodeGen should never see always-dependent or non-canonical types, while debug info generation should never see always-dependent types. More switch() statements on the type class need to be moved over to using this approach, so that we'll get warnings when we add a new type then fail to account for it somewhere in the compiler. As part of this, some types have been renamed: TypeOfExpr -> TypeOfExprType FunctionTypeProto -> FunctionProtoType FunctionTypeNoProto -> FunctionNoProtoType There shouldn't be any functionality change... llvm-svn: 65591
OpenPOWER on IntegriCloud