about summary refs log tree commit diff homepage
AgeCommit message (Collapse)Author
2021-12-20test/Concrete/GlobalUndef.ll: Remove `target datalayout` and `target triple`Lukáš Zaoral
Fixes assertion violation triggered in LLVM 13 CI job due to incompatibility with default target triple and datalayout.
2021-12-20llvm13: Add LLVM 13 to Travis CI and GitHub ActionsLukas Zaoral
2021-12-20llvm13: Add LLVM 13 to lit.cfgLukas Zaoral
2021-12-20llvm13: llvm::APInt::toString has been moved to StringExtras.hLukas Zaoral
See: https://reviews.llvm.org/D103888
2021-12-20llvm13: CreateGEP no longer accepts nullptrLukas Zaoral
See: https://reviews.llvm.org/D105653
2021-12-20llvm13: CreateLoad API with implicit types has been deprecatedLukas Zaoral
See: https://github.com/llvm/llvm-project/commit/6312c53870897435b38881795460ad9f34bf9819
2021-12-20llvm13: llvm::cl::GeneralCategory is no longer a globalLukas Zaoral
Therefore, llvm::cl::getGeneralCategory() should be used instead. See: https://reviews.llvm.org/D105959
2021-12-20llvm13: llvm::fs::F_None has been removedLukas Zaoral
... and should be replaced with llvm::fs::OF_None since LLVM 7. See: https://reviews.llvm.org/D101506 https://github.com/llvm/llvm-project/commit/1f67a3cba9b09636c56e2109d8a35ae96dc15782
2021-12-20Support/FileHandling.cpp: rewrite to C++14Lukas Zaoral
2021-12-19cmake: copy klee-uclibc and klee-libcxx to expected locationsLukas Zaoral
Before this change, we created a symlink to the given libraries in their expected location and then installed the original library. This was problematic as the install directives are performed the order they are encountered during the configure step and the installation of directory containing the symlink was processed after the installation of the original library. Therefore, the original libraries were installed but were subsequently overwritten by the symlinks that can become broken rather easily. This commit changes the behaviour so that we create copy the libraries to the expected location and install them together with the rest of the KLEE runtime as was originally intended.
2021-11-20Fixed fail with preferCex, removed relation from first argumentTaras Bereznyak
2021-11-02ktest-tool: --extract: warn if object can't be foundFrank Busse
2021-11-02Core/Executor: use `nullptr` instead of `0`ᴀᴇꜱᴏᴘʜᴏʀ
Since KLEE requires C++14, we should prefer `nullptr` to plain `0`.
2021-11-02tests: adjust Feature/KleeStatsColumns.test for fixed column orderFrank Busse
2021-11-02klee-stats: order remaining columns alphabeticallyFrank Busse
2021-10-27tools/klee: Warn if module and host target triples differLukas Zaoral
... as running a bitcode with a different target triple may result in unexpected crashes or assertion violations.
2021-10-27Module/RaiseAsm: Support i686 target as wellLukas Zaoral
Add i686 to the list of supporterd targets by this transformation pass.
2021-10-27Module/RaiseAsm: Fix crash when host and bitcode target triples differLukas Zaoral
RaiseAsm always created a target machine for the host target and not for the bitcode one. Therefore, KLEE could crash on i686 bitcode as x86_64 target machine cannot be used to raise i686 assembly. Fixes: LLVM ERROR: 64-bit code requested on a subtarget that doesn't support it!
2021-10-22Switch FreeBSD CI to 12.2 and 13.0, as 11.4 has gone EOL.Gleb Popov
2021-10-17test/Runtime/POSIX/Futimesat: futimesat(2) requires _GNU_SOURCE on glibc ↵Lukas Zaoral
platforms
2021-10-17test/Runtime/POSIX/Futimesat: Compile with -std=c99Lukas Zaoral
.. so that `linux` is not a defined macro. Without the `-std=c99` option, linux is an implicitly defined macro so all such substrings in the given path will be replaced with `1` during stringification. Unfortunately, Fedora's rpmbuild uses `x86_64-redhat-linux-gnu` as a build directory for all CMake projects which leads to a failure due to a change to `x86_64-redhat-1-gnu`. Fixes: #1424
2021-10-13test/Feature/FunctionAlias.c: Add missing CHECK-UNKNOWN prefixLukas Zaoral
This test started to fail on LLVM 13 because FileCheck switched the default setting regarding the allowance of unused prefixes. This is now considered to be a fatal error.
2021-09-15Install git as a requirement for codecovMartin Nowack
Codecov depends on git to detect the SHA sum of the repository. Install as a dependency.
2021-09-10llvm12: Implement llvm.abs intrinsicLukas Zaoral
The vector variants are not implemented at the moment. See: https://reviews.llvm.org/D84125 Co-authored-by: Lukas Zaoral <lzaoral@redhat.com> Co-authored-by: Martin Nowack <m.nowack@imperial.ac.uk>
2021-09-10llvm11: Handle llvm.roundeven instrinsicLukas Zaoral
See: https://reviews.llvm.org/D75670
2021-09-10llvm12: Implement llvm.{s,u}{max,min} intrinsicsLukas Zaoral
The vector variants are not implemented at the moment. See: https://reviews.llvm.org/D84125 Co-authored-by: Lukas Zaoral <lzaoral@redhat.com> Co-authored-by: Martin Nowack <m.nowack@imperial.ac.uk>
2021-09-10CI: Use the latest release of CMakeLukas Zaoral
2021-09-10llvm12: Add LLVM 12 to Travis CI and GitHub ActionsLukas Zaoral
2021-09-10llvm12: Add LLVM 12 to lit.cfgLukas Zaoral
2021-09-10llvm12: VectorType::getNumElements() has been deprecatedLukas Zaoral
... and has already been removed from the LLVM 13 source tree. See: https://reviews.llvm.org/D78127 https://reviews.llvm.org/D95570
2021-06-19Test failure for WSL 1Pavel Yatcheniy
2021-05-10allocate memory objects for functionsJulian Büning
Before, we reused the llvm::Function* value in the target program, even though it stems from KLEE's own address space. This leads to non-deterministic function pointers, even with --allocate-determ. This issue was identified in the MoKLEE paper. Now, we allocate a memory object per function, for its (potentially) deterministic address. Mapping this address back to llvm::Functions is done by the legalFunctions map. Also, pointer width now depends on the target, not the host.
2021-05-10extend function pointer testJulian Büning
Part of the test was already disabled in the initial checkin. However, we do support function pointers if they are restricted to one or more possible values.
2021-05-04cirrus: update FreeBSD python dependenciesFrank Busse
2021-05-04tests: adjust to new summary outputFrank Busse
2021-05-04differentiate between partial and completed paths in summary and fix paths ↵Frank Busse
stats when not dumping states
2021-05-04test: count paths with -dump-states-on-halt=falseFrank Busse
2021-04-30posix runtime: add malloc checksFrank Busse
2021-04-29Fix erroneous klee-stats legend for --print-allJordy Ruiz
Only absolute times were displayed, and were marked as %. Fixes CexCacheTime, ForkTime and ResolveTime columns.
2021-04-20Replaced the time-based delay after which the max-static-*-pct checks are ↵Cristian Cadar
performed with one expressed in terms of number of forks.
2021-04-20Refactored maxStaticPctChecks into a sequence of conditions.Cristian Cadar
2021-04-20Test for -max-static-fork-pctCristian Cadar
2021-04-20Added a warning when forking is skipped due to MaxStatic*Pct limits being ↵Cristian Cadar
reached
2021-04-20Added -max-static-pct-check-delay to replace the hardcoded delay after which ↵Cristian Cadar
the MaxStatic*Pct checks are performed.
2021-04-20Refactored MaxStatis*Pct conditions into a separate function.Cristian Cadar
2021-04-20test/Concrete: Use Python 3 in ConcreteTest.py explicitlyLukas Zaoral
Some Linux distributions, e.g. Fedora, do not install the unversioned Python binary by default and Python 2 has been dead for more than a year.
2021-04-18klee-replay: Fix -Wformat-truncation warningLukas Zaoral
Increase the size of the buffer to PATH_MAX in create_link as that is the maximal possible length of fname and check whether output truncation occurred. Fixes: tools/klee-replay/file-creator.c: In function 'create_file': tools/klee-replay/file-creator.c:55:31: warning: '%s' directive output may be truncated writing up to 4095 bytes into a region of size 64 [-Wformat-truncation=] 55 | snprintf(buf, sizeof(buf), "%s.lnk", fname); | ^~ ...... 344 | target = tmpname; | ~~~~~~~ In file included from /usr/include/stdio.h:866, from tools/klee-replay/file-creator.c:16: /usr/include/bits/stdio2.h:70:10: note: '__snprintf_chk' output between 5 and 4100 bytes into a destination of size 64 70 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 71 | __bos (__s), __fmt, __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-04-18tests: Invoke tools through their corresponding macrosLukas Zaoral
2021-04-18tests: Do not add klee tools to PATH in litLukas Zaoral
It may happen that some older instance of klee is already present in PATH. All tests that call plain klee instead of %klee may use it and then unexpectedly fail. This commit will make all tests that rely on klee tools being explicitly in PATH fail in our CI. From now on, only LLVM tools, FileCheck and not will be in lit's PATH.
2021-04-08cmake: Fix CMP0026 policy deprecation warningLukas Zaoral
CMake 3.19+ started to issue warnings if this policy is set to OLD: CMake Deprecation Warning at test/CMakeLists.txt:143 (cmake_policy): The OLD behavior for policy CMP0026 will be removed from a future version of CMake. The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD.