| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
variables. When invalidated, the entire
globals memory space gets assigned a symbolic value, but that value was not being used for lazy symbolication
of fields of globals. This could result in cases where bogus null dereferences were being reported.
Fixes PR 8440.
llvm-svn: 117336
|
|
|
|
| |
llvm-svn: 117335
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
can be used as
the index when the value evaluation isn't powerful enough. By creating ElementRegions with
UnknownVals as the index, this gives the false impression that they are the same element, when
they really aren't. This becomes really problematic when deriving symbols from these regions
(e.g., those representing the initial value of the index), since two different indices will
get the same symbol for their binding.
This fixes an issue with the idempotent operations checker that would cause two indices that
are clearly not the same to make it appear as if they always had the same value.
Fixes <rdar://problem/8431728>.
llvm-svn: 113920
|
|
|
|
|
|
| |
account typedefs.
llvm-svn: 113893
|
|
|
|
|
|
|
|
| |
the size of a VLA. We don't track VLA extents yet,
but we should at least not crash. Fixes <rdar://problem/8424269>.
llvm-svn: 113888
|
|
|
|
| |
llvm-svn: 112784
|
|
|
|
|
|
| |
case for follow-on work). This patch adds a bandaid for RegionStore's limited reasoning about symbolic array values.
llvm-svn: 112766
|
|
|
|
|
|
| |
function's address. Fixes PR 8052.
llvm-svn: 112761
|
|
|
|
|
|
| |
to the new constants.
llvm-svn: 112047
|
|
|
|
| |
llvm-svn: 111790
|
|
|
|
| |
llvm-svn: 111737
|
|
|
|
| |
llvm-svn: 111736
|
|
|
|
| |
llvm-svn: 111735
|
|
|
|
|
|
|
|
| |
with the same binding key. The only trick here is that sometimes the Symbolic
region is stored in with an LocAsInteger wrapper. We unwrap that in
SVal::getAsLocSymbol().
llvm-svn: 111734
|
|
|
|
|
|
| |
region and its base region as the same binding key.
llvm-svn: 111732
|
|
|
|
| |
llvm-svn: 111731
|
|
|
|
|
|
|
| |
relavant any more, because we set its default value to a symbol, and the type of
default symbolic value is irrelavant.
llvm-svn: 111730
|
|
|
|
| |
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
|