Age | Commit message (Collapse) | Author |
|
|
|
convert iterators using static_cast
|
|
Newer versions of LLVM do not allow to implicitly cast iterators to
pointers where they point. So convert all such uses to explicit
static_cast, the same as LLVM code does.
Otherwise we see errors like:
lib/Core/Executor.cpp:548:15: error: no viable conversion from 'Module::iterator' (aka 'ilist_iterator<llvm::Function>') to 'llvm::Function *'
Function *f = i;
^ ~
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
|
Teach KLEE to respect the requested memory alignment of allocated memory
|
|
llvm: stop using global context
|
|
It was marked as deprecated long time ago and finally removed in LLVM
3.9. Remove all uses of getGlobalContext and create our own context.
Propagate it all over the code then.
[v2] use ctx, not C as name
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
|
variables when possible.
Previously an alignment 8 was always used which did not faithfully
emulate what was either explicitly requested in the LLVM IR or what
the default alignment was for the target.
|
|
CommandLine: do not copy list in optionIsSet
|
|
Pass the list as reference. Otherwise we can get errors with newer LLVM
like:
lib/Basic/ConstructSolverChain.cpp:26:19: error: call to deleted constructor of 'llvm::cl::list<QueryLoggingSolverType>'
if (optionIsSet(queryLoggingOptions, SOLVER_KQUERY)) {
^~~~~~~~~~~~~~~~~~~
llvm/Support/CommandLine.h:1466:3: note: 'list' has been explicitly marked deleted here
list(const list &) = delete;
^
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
|
klee: remove use of deprecated 'register'
|
|
As per:
http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html#the-opt-option-std-compile-opts-was-removed
the -std-compile-opts was effectively an alias of -O3. And since it was
removed in later LLVM versions, stop relying on that.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
|
New compilers warn about using 'register' as follows:
ConstantDivision.cpp:66:3: warning: 'register' storage class specifier is deprecated and incompatible with C++1z [-Wdeprecated-register]
Remove the register specifier -- the compilers are clever enough to know
what to do.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
|
delcypher/fix_klee_get_direct_call_bitcast_weak_alias
Fix assertion failure when klee::getDirectCallTarget() is used on call to bitcasted weak alias
|
|
|
|
controlled by a new parameter `moduleIsFullyLinked`. When
true the linkage type of a weak alias is ignored. It is legal to do
this when the module is fully linked because there won't be another
function that could override the weak alias.
This fixes a previous assertion failure in `klee::getDirectCallTarget()`
triggered by the `test/regression/2016-11-24-bitcast-weak-alias.c` test case.
|
|
`klee::getDirectCallTarget(llvm::CallSite)`.
The problem is that it doesn't handle bitcasted functions that call a
weak alias.
|
|
Silenced warning: comparison of integers of different signs ('const i…
|
|
'const unsigned long long')
|
|
too strict limitations (LLVM >= 3.0)
|
|
|
|
ReadExpr::create() was missing an opportunity to constant fold
|
|
|
|
width greater than 64
|
|
|
|
correctly applied
|
|
constant arrays.
|
|
Added error message when STP fails to fork.
|
|
|
|
Removing unused lib/SMT directory
|
|
|
|
Modify scripts and a test to allow ASan/UBSan builds.
|
|
compiler warnings, one by adding an assert, and the other by refactoring the choose() function.
|
|
Revert "Increased the type size for the stop-after-n-instructions option to a…"
|
|
a…"
|
|
Increased the type size for the stop-after-n-instructions option to a…
|
|
too strict limitations
|
|
Signed-off-by: Levente Kurusa <levex@linux.com>
|
|
Fix Vararg test
|
|
The helper function had int return type, while no value was being
returned.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
|
|
|
with ASan.
|
|
when using the native compiler in system tests.
This fixes the `libkleeruntest` tests when building with ASan.
|
|
flags.
The old build system stupidly propagates flags for the host C compiler
into the flags for the C bitcode compiler leading to unwanted
instrumentation being added to KLEE's runtime.
|
|
builds
of KLEE.
Two configurations (one for each build system) have been added to
TravisCI to do an ASan build.
|
|
When building with ASan the `mallinfo()` function is intercepted.
However the currently implementation is just a stub that always
returns 0. So instead use the public API of the sanitizer runtime
to get the amount of currently allocated memory when KLEE is built
with ASan.
Unfortunately it appears that the way to detect building with ASan
differs between Clang and GCC. There was also a sanitizer runtime
API change too.
This was tested with
* Clang 3.4, 3.5, and 3.9.0
* GCC 4.8, 4.9, 5.2, 5.4 and, 6.2.1.
|
|
[CMake] Remove `ENABLE_TESTS` CMake cache option.
|
|
The intention of this option was to provide a switch that can be
used to globally enable/disable tests.
This option ended up causing a lot of confusion as can be seen
on the discussion on writing documention for the new build system.
https://github.com/klee/klee.github.io/pull/53
So it was decided to remove this option. This fixes #568 .
|
|
[CMake] Rename "integrationtests" to "systemtests", removed some undocumented targets and other build changes
|
|
disallow using reserved target names.
|
|
Surprisingly the old code still worked even when the target didn't
exist.
|