Age | Commit message (Collapse) | Author |
|
In case linking of external libraries failed, user would
only be informed if KLEE is compiled with assertions enabled.
This fix lets KLEE always fail.
|
|
Existence of main() function is checked with assertion.
This check fails if KLEE is compiled in Release mode.
|
|
Feature klee internal functions
|
|
|
|
emphasising that the function cannot be returned from early.
|
|
file as well.
|
|
is more helpful because often the next message is "Now ignoring error
at this location". Which is slightly confusing when no location
is shown.
|
|
is actually available.
In addition if doing a DEBUG build then the command line flag
-debug-only=klee_missing_debug
shows the instructions missing debug information
and
-debug-only=klee_obtained_debug
show the instructions with debug information.
|
|
debug information is attached directly to most instructions so
the simpler algorithm added in 5ecfd6e2fd5becc10be355b3a20d014e76e40518
can be used.
Since support for LLVM version < 2.9 has been removed the old algorithm
should be removed.
This has been tested with LLVM 2.9 and LLVM 3.3
|
|
* Just iterate over the instructions which use the function to be inlined
* Handle each callsite (e.g. CallInst and InvokeInst)
|
|
|
|
KLEE provides runtime library functions to do detection of bugs (e.g. overflow).
This runtime functions are not the location of the bugs but it is
the next non-runtime library function from the stack.
Use the caller inside that function to indicate where the bug is.
|
|
LLVM versions
With newer LLVM versions (starting with LLVM 2.7) debug information are directly associated
as meta data with each instruction.
Therefore, debug information can be acquired directly from each instruction.
|
|
|
|
|
|
|
|
Fixes memleak
|
|
|
|
Format of assembler address strings are different
with newer LLVM version (They don't have a prefix anymore).
This fix takes care of newer LLVM versions (>=3.3) as well.
|
|
Fixed bug where divide by zero bugs would only be detected once in a program
|
|
SUPPORT_METASMT ... #endif macros
|
|
not supported; a test case modified to not fail because of this.
|
|
|
|
|
|
Bugfix: Remove llvm.trap declaration after cleaning all uses.
|
|
|
|
Replace current implementation of linkWithLibrary()
|
|
Added some of the common *at functions & others to the model. Obey --max-forks in switch statements.
|
|
|
|
|
|
|
|
|
|
Make KLEE compile with LLVM 2.3.
|
|
Fix queries not being logged correctly if an assertion failure is hit.
|
|
command line argument).
Overshift is where a Shl, AShr or LShr has a shift width greater
than the bit width of the first operand. This is undefined behaviour
in LLVM so we report this as an error.
|
|
even if there were many divide by zero bugs.
The fix basically inlines all function calls to klee_div_zero_check()
so that each call to klee_report_error() is a unique instruction
for each instrumentation of a divide operation.
It also seems that inlining the call "magically" fixed the debug information
(file and line number) of the instruction so that the debug information on the
inlined instructions matches that of the instrumented division instruction.
Note that the command line option -emit-all-errors could be used to
workaround the bug fixed in this commit.
|
|
|
|
MartinNowack-CompilerWarnings
|
|
This reverts commit 5c059018c02a7c7db252a3cb636a39c89c430a06.
|
|
MartinNowack-CompilerWarnings
|
|
Enable PathV2 interface starting from LLVM 2.9 and do some minor include
cleanup.
|
|
MartinNowack-CompilerWarnings
|
|
|
|
|
|
|
|
|
|
Major changes are:
- Switching to llvm-link to build archive files
- Use GetMallocUsage instead of GetTotalMemoryUsage (be aware of bug in
LLVM 3.3 http://llvm.org/bugs/show_bug.cgi?id=16847)
- intrinsic library functions like memcpy/mov/set use weak linkage to be
replaced by e.g. uclibc functions
- rewrote linking with library
- enhanced MemoryLimit test case to check if mallocs were successful
|
|
get correctly logged if an assertion failure is hit later on.
|
|
Slight refactor of code initialising memory for argments/environment c-strings
|
|
Patch Set III (update) Implemented llvm.umul.with.overflow
|