| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 111616
|
|
|
|
|
|
| |
Fixes PR7945.
llvm-svn: 111602
|
|
|
|
|
|
| |
Dimitry Andric!
llvm-svn: 111327
|
|
|
|
|
|
| |
and remove getStrData(). Patch by Peter Davies (with some tweaks).
llvm-svn: 111229
|
|
|
|
|
|
| |
an explicit isValid() method.
llvm-svn: 111181
|
|
|
|
|
|
|
|
|
|
| |
for the purpose of bounds-checking.
- Rewrite GRState::AssumeInBound to actually do that checking, and to use the normal constraint path.
- Remove ConstraintManager::AssumeInBound.
- Teach RegionStore and FlatStore to ignore those regions for now.
llvm-svn: 111116
|
|
|
|
|
|
| |
GRState now.
llvm-svn: 111103
|
|
|
|
| |
llvm-svn: 111099
|
|
|
|
|
|
| |
work-in-progress, but working! Effect on clients: all changes to a store now go through GRState.
llvm-svn: 111078
|
|
|
|
| |
llvm-svn: 110784
|
|
|
|
| |
llvm-svn: 110309
|
|
|
|
|
|
|
|
| |
changes through GRState instead of directly accessing the StoreManager. Also adds cover methods for InvalidateRegion(s) and EnterStackFrame to GRState.
This is in preparation for proposed region change notifications. No functionality change.
llvm-svn: 110137
|
|
|
|
|
|
|
|
| |
the top-level object. FlatStore now can bind and retrieve element and field
regions.
PR7297 is fixed by flat store.
llvm-svn: 110020
|
|
|
|
|
|
| |
than copying each character.
llvm-svn: 109734
|
|
|
|
|
|
| |
fixes a false path issue reported in <rdar://problem/8243408> and also spurs another cause where the idempotent operations checker fires.
llvm-svn: 109710
|
|
|
|
|
|
|
|
| |
SubRegions. Fixes assertion failure
reported in PR 7572.
llvm-svn: 107738
|
|
|
|
|
|
|
|
|
|
| |
regions that may not be known at compile-time (such as those created by malloc). This replaces the old setExtent/getExtent API on Store, which used the GRState's GDM to store SVals.
Also adds a getKnownValue() method to SValuator, which gets the integer value of an SVal if it is known to only have one possible value. There are more places in the code that could be using this, but in general we want to be dealing entirely in SVals, so its usefulness is limited.
The only visible functionality change is that extents are now honored for any DeclRegion, such as fields and Objective-C ivars, rather than just variables. This shows up in bounds-checking and cast-size-checking.
llvm-svn: 107577
|
|
|
|
|
|
|
|
|
|
|
| |
non-static global variables
when calling a function/method whose impact on global variables we cannot accurately estimate.
This change introduces two new MemSpaceRegions that divide up the memory space of globals, and causes
RegionStore and BasicStore to consult a binding to the NonStaticGlobalsMemSpaceRegion when lazily
determining the value of a global.
llvm-svn: 107423
|
|
|
|
|
|
| |
the current statement around everywhere. Preparation for symbolic extents.
llvm-svn: 107422
|
|
|
|
|
|
| |
SimpleSValuator::EvalBinOpLL().
llvm-svn: 106992
|
|
|
|
|
|
| |
scaled as well.
llvm-svn: 106911
|
|
|
|
|
|
| |
from the context when it is not already available.
llvm-svn: 106868
|
|
|
|
|
|
|
|
| |
Fixes analyzer
crash reported in PR 7450.
llvm-svn: 106609
|
|
|
|
|
|
|
|
|
|
| |
returns the base region in
the binding key instead of the region + offset. It isn't clear if this is the best semantics, but most
clients will likely only care about simple bindings, or bindings to a particular variable. We can
refine later if necessary.
llvm-svn: 106183
|
|
|
|
| |
llvm-svn: 105265
|
|
|
|
|
|
| |
modification.
llvm-svn: 105264
|
|
|
|
|
|
|
|
|
| |
RegionStoreManager::RetrieveElement() that handles indexing into a larger scalar
object to only consult the direct binding of a super region if it is a scalar.
This isn't perfect yet, and a big FIXME is attached to the code. This causes
the test case for PR 7218 now to pass.
llvm-svn: 105195
|
|
|
|
| |
llvm-svn: 105099
|
|
|
|
| |
llvm-svn: 105097
|
|
|
|
| |
llvm-svn: 104669
|
|
|
|
|
|
| |
This requires creating new persistent states due to the nature of GDM.
llvm-svn: 104668
|
|
|
|
|
|
|
| |
whether the size of the symbolic region is a multiple of the size of T.
Fixes PR6123 and PR7217.
llvm-svn: 104584
|
|
|
|
|
|
|
|
| |
thing. Audit all uses of Type::isStructure(), changing those calls to
isStructureOrClassType() as needed (which is alsmost
everywhere). Fixes the remaining failure in Boost.Utility/Swap.
llvm-svn: 102386
|
|
|
|
| |
llvm-svn: 101771
|
|
|
|
|
|
| |
now in the LLVM tree.
llvm-svn: 100891
|
|
|
|
|
|
|
|
| |
VarRegion.
Patch by Jordy Rose.
llvm-svn: 100099
|
|
|
|
|
|
| |
array values with a non-zero offset would get prematurely pruned from the store.
llvm-svn: 100067
|
|
|
|
|
|
|
|
| |
'const'.
Fixes a false positive reported in PR 6288.
llvm-svn: 99922
|
|
|
|
| |
llvm-svn: 99921
|
|
|
|
| |
llvm-svn: 99271
|
|
|
|
|
|
| |
their bindings are not removed.
llvm-svn: 98705
|
|
|
|
|
|
| |
since RemoveDeadBinding mistakenly remove the binding to CXXThisRegion.
llvm-svn: 98629
|
|
|
|
| |
llvm-svn: 98176
|
|
|
|
| |
llvm-svn: 98175
|
|
|
|
| |
llvm-svn: 98161
|
|
|
|
| |
llvm-svn: 98160
|
|
|
|
|
|
|
|
|
|
|
| |
RegionStore::RemoveDeadBindings to use the same core cluster analysis algorithm as RegionStore::InvalidateRegions().
Beyond simplifying the algorithm significantly, we no longer
need to build subregion maps in RemoveDeadBindings(). This
and other changes cause a significant speedup: the time to
analyze sqlite3.c (single core) drops by 14%.
llvm-svn: 98159
|
|
|
|
|
|
|
|
|
|
|
| |
cluster analysis algorithm as RegionStore::InvalidateRegions().
Beyond simplifying the algorithm significantly, we no longer
need to build subregion maps in RemoveDeadBindings(). This
and other changes cause a significant speedup: the time to
analyze sqlite3.c (single core) drops by 14%.
llvm-svn: 98144
|
|
|
|
|
|
|
| |
into a 'ClusterAnalysis' parent class. The idea is
to potentially reuse this for reworking RemoveDeadBindings.
llvm-svn: 98143
|
|
|
|
|
|
| |
no need to store a type with SymbolRegionValue.
llvm-svn: 97437
|