- Aug 03, 2009
-
-
Daniel Dunbar authored
llvm-svn: 78001
-
Ted Kremenek authored
llvm-svn: 78000
-
Daniel Dunbar authored
from the perspective of LLVM exception handling. Otherwise the C++ personality function may decide not to run them, if it only detects cleanup handlers. - Test case for this is exceptions.m in llvm-test. llvm-svn: 77999
-
Fariborz Jahanian authored
llvm-svn: 77993
-
Fariborz Jahanian authored
llvm-svn: 77991
-
John McCall authored
elsewhere. Very slightly decouples DeclSpec users from knowing the exact diagnostics to report, and makes it easier to provide different diagnostics in some places. llvm-svn: 77990
-
Fariborz Jahanian authored
llvm-svn: 77985
-
John McCall authored
remaining specifier enums T. llvm-svn: 77981
-
Daniel Dunbar authored
llvm-svn: 77972
-
Eli Friedman authored
obviously correct. llvm-svn: 77969
-
Zhongxing Xu authored
llvm-svn: 77961
-
Daniel Dunbar authored
llvm-svn: 77952
-
Daniel Dunbar authored
llvm-svn: 77947
-
Zhongxing Xu authored
llvm-svn: 77945
-
Zhongxing Xu authored
reset the current analysis context of the AnalysisManager. llvm-svn: 77943
-
Daniel Dunbar authored
- Patch by Jonathan Gray! llvm-svn: 77935
-
Douglas Gregor authored
llvm-svn: 77928
-
Douglas Gregor authored
template partial specialization. Then, use those template arguments when instantiating members of that class template partial specialization. Fixes PR4607. llvm-svn: 77925
-
- Aug 02, 2009
-
-
Anders Carlsson authored
llvm-svn: 77916
-
Anders Carlsson authored
llvm-svn: 77915
-
Anders Carlsson authored
llvm-svn: 77905
-
Ted Kremenek authored
Fix regression caused by recent refactoring where HTML and plist files would not get flushed out when using '-disable-free'. llvm-svn: 77882
-
Ted Kremenek authored
llvm-svn: 77876
-
Ted Kremenek authored
llvm-svn: 77875
-
Ted Kremenek authored
Generalize the interface of 'StoreManager::RemoveDeadBindings()' to manipulate the entire GRState, not just the Store. llvm-svn: 77870
-
Anders Carlsson authored
llvm-svn: 77862
-
Ted Kremenek authored
'void*' (or 'const void*') as an identity transformation. llvm-svn: 77860
-
Anders Carlsson authored
llvm-svn: 77854
-
Daniel Dunbar authored
happy. llvm-svn: 77850
-
Daniel Dunbar authored
llvm-svn: 77848
-
Daniel Dunbar authored
ENABLE_EXPENSIVE_CHECKS clean on x86_64-.*-darwin10. llvm-svn: 77831
-
Eli Friedman authored
llvm-svn: 77829
-
- Aug 01, 2009
-
-
Eli Friedman authored
llvm-svn: 77811
-
Eli Friedman authored
serious issues :) llvm-svn: 77800
-
Eli Friedman authored
llvm-svn: 77786
-
Ted Kremenek authored
made to RegionStore (and related classes) in order to handle some analyzer failures involving casts and manipulation of symbolic memory. The root of the change is in StoreManager::CastRegion(). Instead of using ad hoc heuristics to decide when to layer an ElementRegion on a casted MemRegion, we now always layer an ElementRegion when the cast type is different than the original type of the region. This carries the current cast information associated with a region around without resorting to the error prone recording of "casted types" in GRState. Along with this new policy of layering ElementRegions, I added a new algorithm to strip away existing ElementRegions when they simply represented casts of a base memory object. This algorithm computes the raw "byte offset" that an ElementRegion represents from the base region, and allows the new ElementRegion to be based off that offset. The added benefit is that this naturally handles a series of casts of a MemRegion without building up a set of redundant ElementRegions (thus canonicalizing the region view). Other related changes that cascaded from this one (as tests were failing in RegionStore): - Revamped RegionStoreManager::InvalidateRegion() to completely remove all bindings and default values from a region and all subregions. Now invalidated fields are not bound directly to new symbolic values; instead the base region has a "default" symbol value from which "derived symbols" can be created. The main advantage of this approach is that it allows us to invalidate a region hierarchy and then lazily instantiate new values no matter how deep the hierarchy went (i.e., regardless of the number of field accesses, e.g. x->f->y->z->...). The previous approach did not do this. - Slightly reworked RegionStoreManager::RemoveDeadBindings() to also incorporate live symbols and live regions that do not have direct bindings but also have "default values" used for lazy instantiation. The changes to 'InvalidateRegion' revealed that these were necessary in order to achieve lazy instantiation of values in the region store with those bindings being removed too early. - The changes to InvalidateRegion() and RemoveDeadBindings() revealed a serious bug in 'getSubRegionMap()' where not all region -> subregion relationships involved in actually bindings (explicit and implicit) were being recorded. This has been fixed by using a worklist algorithm to iteratively fill in the region map. - Added special support to RegionStoreManager::Bind()/Retrieve() to handle OSAtomicCompareAndSwap in light of the new 'CastRegion' changes and the layering of ElementRegions. - Fixed a bug in SymbolReaper::isLive() where derived symbols were not being marked live if the symbol they were derived from was also live. This fix was critical for getting lazy instantiation in RegionStore to work. - Tidied up the implementation of ValueManager::getXXXSymbolVal() methods to use SymbolManager::canSymbolicate() to decide whether or not a symbol should be symbolicated. - 'test/Analysis/misc-ps-xfail.m' now passes; that test case has been moved to 'test/Analysis/misc-ps.m'. - Tweaked some pretty-printing of MemRegions, and implemented 'ElementRegion::getRawOffset()' for use with the CastRegion changes. llvm-svn: 77782
-
Ted Kremenek authored
Temporarily disable out-of-bounds checking. The current checking logic will not work quite right with the changes I'm about to commit. llvm-svn: 77779
-
Anders Carlsson authored
llvm-svn: 77763
-
Mike Stump authored
llvm-svn: 77751
-
- Jul 31, 2009
-
-
Anders Carlsson authored
llvm-svn: 77738
-