| Commit message (Collapse) | Author | Age |
|
|
|
| |
overrides of virtual methods.
|
|
|
|
|
| |
up creating code that the Boogie parser gets a stack overflow while trying to
parse!
|
|
|
|
|
|
|
|
|
|
| |
in the code model) into the sink so that the different statement traversers
used for things like if-then-else statements share the same stack.
Fixed a problem in the dispatch table for whole program virtual dispatch so it
works for generic methods.
Found input that either crashed the translator or caused it to produce bad
Boogie: "fixed" it by having the translator thrown an exception so the method
containing the bad code is skipped.
|
|
|
|
|
|
|
|
|
|
| |
correctly for virtual method calls. Changed the whole-program override
for VisitMethodCall so that it creates a new CodeModel expression that
does not contain virtual method calls and then translate that newly built
expression.
Treat type equality (and inequality) specially: translate it directly to a
type test instead. But do it just for the idiom: "o.GetType == typeof(T)".
In that case, turn it into "is#T$T($DynamicType(o))".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
0 means no modeling at all.
1 (which can be specified only if also specifying whole program translation)
means that a fixpoint analysis will be done on all of the translated assemblies
to compute the set of exceptions that each method can throw (even though we're
using only the fact that a method throws anything at all, not the specific
exceptions it can throw) so only calls to methods that can throw an exception
have a branch after the call that checks to see if an exception has been
thrown. Methods that are defined outside of the set of translated assemblies
are assumed to *not* throw any exceptions!
2 means that every method is considered to be one that can throw an exception.
|
| |
|
|
|
|
|
|
| |
method calls are not followed by a test to see if an exception was thrown
"throw e" is translated as "assume false"
"try S catch C finally F" is translated as "S; F"
|
|
|
|
| |
stack in case it is needed by an enclosing expression.
|
|
|
|
| |
to be translated.
|
| |
|
|
|
|
|
|
| |
heap monotonicity (and allocatedness of references
returned from a method) as well as the assert/assume
checks that are generated for every object dereference.
|
|
|
|
|
|
|
| |
it out for now) and used a simpler scheme for always
assigning compound bound expressions to a local.
Added the ability to assert/assume that an object is
non-null before dereferencing it.
|
|
|
|
| |
of references.
|
|
|
|
| |
(like += or *=).
|
|
|
|
|
|
| |
of the internal version).
Fixed the expression traverser to (begin the) support target expressions as
operands of binary expressions. (e.g., x++ or x += 2)
|
|\ |
|
| |
| |
| |
| | |
fixed BCT :value
|
|/| |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
more work is perhaps needed to handle all cases
|
|/| |
|
| |
| |
| |
| | |
Dynamic dispatch for interface method calls.
|
| | |
|
|/
|
|
| |
line
|
|
|
|
| |
added more inline attributes
|
|
|
|
| |
converted a bunch of definitions to be inlined
|
|\ |
|
| |
| |
| |
| |
| | |
removed AssertionInjector from the solution
changed the representation of multicast delegates
|
|/| |
|
| |
| |
| |
| | |
the "union" type that is the supertype of all the translated Boogie types.
|
| | |
|
| | |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(i.e., CLR's creating a heap cell and
putting a value into it) from the concept
of the "union" type that all Boogie types
are a subtype of.
|
|/ / |
|
|/
|
|
| |
a hack in event translation
|
|
|
|
| |
with the attribute {:entrypoint}.
|
|
|
|
| |
whether the method is generic or not.
|
| |
|
| |
|
|
|
|
|
| |
of the struct value. This way it can do an allocation within the copy ctor
(if that is the design choice for structs, which it currently is).
|
|
|
|
| |
Define body for default struct ctors.
|
|
|
|
| |
the address is being taken.
|
| |
|
| |
|
|
|
|
| |
added a DatatypeConstructor class
|
| |
|
|
|
|
|
| |
removed stale contracts in stratified inlining
added test to datatypes
|