summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/RValues.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rename:Zhongxing Xu2008-10-211-399/+0
| | | | | | RValues.h/cpp => SVals.h/cpp llvm-svn: 57893
* This patch did the following renaming. There should be no functional changes.Zhongxing Xu2008-10-171-122/+122
| | | | | | | | | | RVal => SVal LVal => Loc NonLVal => NonLoc lval => loc nonlval => nonloc llvm-svn: 57671
* Remove lval::FieldOffset, lval::ArrayOffset. These will be replaced with ↵Ted Kremenek2008-10-171-51/+3
| | | | | | | | | | | regions. Remove GRExprEngine::getLVal and RValues::MakeVal. Enhance StoreManager "GetLValue" methods to dispatch for specific kinds of lvalue queries, as opposed to interogating the expression tree (GRExprEngine already does this). Added FIXMEs. In particular, we no longer "assume" that a base pointer in a field/array access is null (this logic was removed). Perhaps we should do this when fetching the lvalue for fields and array elements? llvm-svn: 57657
* This is the first step to build a better evaluation model for GRExprEngine. AZhongxing Xu2008-10-161-0/+1
| | | | | | | | new VisitLValue method is added to replace the old VisitLVal. The semantics model becomes more explicit to separate rvalue evaluation from lvalue evaluation. llvm-svn: 57627
* This is a big patch, but the functionality change is small and the rest of ↵Ted Kremenek2008-10-041-13/+12
| | | | | | | | | | | | | | the patch consists of deltas due to API changes. This patch overhauls the "memory region" abstraction that was prototyped (but never really used) as part of the Store.h. This patch adds MemRegion.h and MemRegion.cpp, which defines the class MemRegion and its subclasses. This classes serve to define an abstract representation of memory, with regions being layered on other regions to to capture the relationships between fields and variables, variables and the address space they are allocated in, and so on. The main motivation of this patch is that key parts of the analyzer assumed that all value bindings were to VarDecls. In the future this won't be the case, and this patch removes lval::DeclVal and replaces it with lval::MemRegionVal. Now all pieces of the analyzer must reason about abstract memory blocks instead of just variables. There should be no functionality change from this patch, but it opens the door for significant improvements to the analyzer such as field-sensitivity and object-sensitivity, both which were on hold until the memory abstraction got generalized. The memory region abstraction also allows type-information to literally be affixed to a memory region. This will allow the some now redundant logic to be removed from the retain/release checker. llvm-svn: 57042
* Use LVal::IsLValType(T) instead of checking to see if the type is an ↵Ted Kremenek2008-10-011-1/+1
| | | | | | "lvalue" type directly. llvm-svn: 56912
* adjust to changes in various APIs from LLVM. We can't printChris Lattner2008-08-231-3/+4
| | | | | | | | 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
* various updates to match r54873 on mainline.Chris Lattner2008-08-171-4/+3
| | | | llvm-svn: 54874
* More #include cleaningDaniel Dunbar2008-08-111-0/+1
| | | | | | | | - 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
* Fix 80 col violationTed Kremenek2008-07-181-5/+5
| | | | llvm-svn: 53754
* Fix regression by explicitly checking if we are negating a SymIntConstantVal.Ted Kremenek2008-07-181-0/+14
| | | | llvm-svn: 53753
* More cleanups with ObjCQualifiedIdType in the static analyzer.Ted Kremenek2008-04-301-1/+2
| | | | llvm-svn: 50503
* Add lval::ArrayOffset, which represent the locations of entries in an array.Ted Kremenek2008-04-291-0/+9
| | | | llvm-svn: 50453
* Added lval::FieldOffset, which represents symbolic lvalues for field offsets ↵Ted Kremenek2008-04-291-1/+14
| | | | | | | | from other Lvalues. This removes the failure in null-deref-ps.c (test suite). llvm-svn: 50449
* Added lval type (and tracking) for StringLiterals.Ted Kremenek2008-04-221-0/+10
| | | | llvm-svn: 50109
* Added "nonlval::LValAsInteger" to represent abstract LVals casted to ↵Ted Kremenek2008-04-221-1/+12
| | | | | | integers, allowing us to track lvals when they are casted back to pointers. llvm-svn: 50108
* simplify some code by using PointerLikeType.Chris Lattner2008-04-021-3/+2
| | | | llvm-svn: 49101
* Make a major restructuring of the clang tree: introduce a top-levelChris Lattner2008-03-151-0/+389
lib dir and move all the libraries into it. This follows the main llvm tree, and allows the libraries to be built in parallel. The top level now enforces that all the libs are built before Driver, but we don't care what order the libs are built in. This speeds up parallel builds, particularly incremental ones. llvm-svn: 48402
OpenPOWER on IntegriCloud