| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 48400
|
|
|
|
|
|
|
| |
levels; eventually we will need a plug-in model (similar to GRTransferFuncs) to
represent symbolic memory.
llvm-svn: 48399
|
|
|
|
|
|
| |
object to pretty-print the component of a state that is specific to a checker.
llvm-svn: 48237
|
|
|
|
| |
llvm-svn: 48214
|
|
|
|
|
|
| |
generated values to Block-Level Expressions).
llvm-svn: 48079
|
|
|
|
| |
llvm-svn: 48025
|
|
|
|
| |
llvm-svn: 47995
|
|
|
|
| |
llvm-svn: 47954
|
|
|
|
| |
llvm-svn: 47894
|
|
|
|
|
|
| |
GRExprEngine::StateTy just becoming ValueState*.
llvm-svn: 47714
|
|
|
|
| |
llvm-svn: 47713
|
|
|
|
|
|
| |
globals/parameters at the beginning of the analysis.
llvm-svn: 47664
|
|
|
|
|
|
| |
include directory tree.
llvm-svn: 47661
|
|
|
|
|
|
| |
value of the block-level expression for ?.
llvm-svn: 47645
|
|
|
|
|
|
|
|
|
| |
in an EnumConstantDecl. This was made possible because of a recent fix
in the parser:
http://llvm.org/viewvc/llvm-project?rev=47581&view=rev
llvm-svn: 47624
|
|
|
|
| |
llvm-svn: 47620
|
|
|
|
|
|
| |
CharacterLiteral expressions.
llvm-svn: 47617
|
|
|
|
|
|
|
|
| |
now store in the state essentially which branch we took. This removes
a bunch of bogus assumptions (and likely bugs), reduces the complexity of
the implementation, and facilitates more optimizations.
llvm-svn: 47613
|
|
|
|
|
|
| |
Added recording of divide-by-zero and divide-by-uninitialized nodes.
llvm-svn: 47586
|
|
|
|
|
|
|
| |
symbolic store: VarDecl's inserted into the sweep may not always bind to
anything; handle this special case just like bindings to uninitialized values.
llvm-svn: 47550
|
|
|
|
|
|
|
|
| |
wrapping an EnumConstantDecl evaluates to an integer type that has a different
signedness than the APSInt stored in the EnumConstantDecl. Will file a Bugzilla
report.
llvm-svn: 47548
|
|
|
|
|
|
| |
is symbolic.
llvm-svn: 47463
|
|
|
|
|
|
| |
an error to cast it to LVal.
llvm-svn: 47450
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
based on constant. prop. and limited symbolics.
- Renamed class: RValue -> RVal, LValue -> LVal, etc.
- Minor method renamings and interface cleanups.
- Tightened the RVal "type system" so that UninitializedVal and UnknownVal
cannot be cast to LVal or NonLVal. This forces these corner cases values
to be explicitly handled early before being dispatched to plug-in transfer
function logic.
- Major cleanup in the transfer function logic for binary and unary operators.
Still fixing some regressions, but we now explicitly handle Uninitialized
and Unknown values in a more rigorous way.
llvm-svn: 47441
|
|
|
|
|
|
| |
the same time clearing up some logic of how the unary '*' operator is processed.
llvm-svn: 47356
|
|
|
|
| |
llvm-svn: 47333
|
|
|
|
|
|
|
|
| |
CharacterLiterals. This may not be a permanent solution; it doesn't cost that
much, however, to create a few additional states, and solves a whole bunch
of edge cases when handling ?, ||, and &&.
llvm-svn: 47299
|
|
|
|
| |
llvm-svn: 47298
|
|
|
|
|
|
|
|
|
| |
an analyzed function.
GRExprEngine now records stores to "uninitialized lvalues" (which are sinks in
the ExplodedGraph).
llvm-svn: 47293
|
|
|
|
|
|
| |
UninitializedVals and UnknownVals.
llvm-svn: 47288
|
|
|
|
|
|
|
|
|
| |
Added more boilerplate transfer function support for pointer arithmetic.
Added more pretty-printing support for symbolic constraints.
Added transfer function support for handling enum values.
Minor pointer types cleanup in ExplodedGraphImpl.
llvm-svn: 47183
|
|
|
|
|
|
|
|
| |
referenced by an RValue, instead of having to query the type of the RValue.
Modified ValueState::RemoveDeadBindings to also prune dead symbols.
llvm-svn: 47142
|
|
|
|
| |
llvm-svn: 47030
|
|
|
|
|
|
| |
Added transfer function support for CharacterLiteral.
llvm-svn: 47014
|
|
|
|
|
|
|
|
|
| |
factories.
Fixed a horrible bug in lval:DeclVar::classof(RValue* V); we weren't checking
V was an LValue, allowing nonlval::ConcereteInts to match isa<lval::DeclVar>.
llvm-svn: 46976
|
|
|
|
|
|
|
|
| |
bindings for block-level expressions.
Moved pretty-printing logic (DOT) for ValueStates to ValueState.cpp.
llvm-svn: 46965
|
|
|
|
| |
llvm-svn: 46892
|
|
|
|
|
|
|
| |
Expr* instead of a Stmt*, since we only
store bindings for Expr*.
llvm-svn: 46891
|
|
|
|
|
|
| |
GRConstants logic to ValueStateManager.
llvm-svn: 46888
|
|
|
|
| |
llvm-svn: 46875
|
|
|
|
|
|
| |
Renamed UninitializedValue to UninitializedVal.
llvm-svn: 46874
|
|
|
|
| |
llvm-svn: 46843
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed bug in RemoveDeadBindings by implementing a simple "mark-and-sweep"
cleaner over the bindings, starting from the Decls and block-level expressions
that are considered "live" by the Liveness analysis.
Fixed bug in isa<> implementation for class LValue.
Added "VisitDeclRefExpr" to GRConstants so that we explicitly bind the current
value of variable to the Block-level Expression (i.e., when the DeclRefExpr is
at the CFGBlock level).
llvm-svn: 46839
|
|
|
|
|
|
| |
Fixed insidious bug in handling dereferences.
llvm-svn: 46835
|
|
|
|
|
|
|
| |
using the bump-pointer allocator and a placed new; we accidentally allocated
a ValueStateImpl* instead, causing an overrun when we did a placed new().
llvm-svn: 46793
|
|
|
|
|
|
|
|
|
| |
!= 0).
This action will add constraints to the possible values of a symbol.
Still needs to be debugged.
llvm-svn: 46789
|
|
|
|
|
|
| |
This noticeably cleans up the naming of these classes.
llvm-svn: 46770
|
|
|
|
|
|
| |
factory objects to ValueStateManager).
llvm-svn: 46758
|
|
|
|
|
|
| |
structure that can contain several maps, not just one.
llvm-svn: 46744
|