about summary refs log tree commit diff homepage
path: root/lib
AgeCommit message (Collapse)Author
2023-03-17Fix compiler warning with newer compilersMartin Nowack
2023-03-17[cmake] Use LLVM's CMake functionality onlyMartin Nowack
LLVM became more complex, use LLVM's CMake functionality directly instead of replicating this behaviour in KLEE's build system. Use the correct build flags provided by LLVM itself. This is influenced by the way LLVM is built in the first place. Remove older CMake support (< 3.0).
2023-03-16Integrate KDAlloc into KLEEDaniel Schemmel
2023-03-16The KDAlloc slot allocator is useful for small sized allocationsDaniel Schemmel
2022-09-26Improve the message for when large arrays become symbolic. Only print this ↵Cristian Cadar
warning once per array. Add test case.
2022-09-24Pass llvm.experimental.noalias.scope.decl to IntrinsicLowering so that it ↵Pavel
strips out these intrinsics
2022-09-14Eliminate .undefined_behavior.err category and simplify testsPavel
2022-09-14Introduce separate categories for different kinds of undefined behaviorPavel
2022-09-14Support UBSan-enabled binariesPavel Yatcheniy
2022-08-26Use true instead of Z3_TRUE (removed in z3 4.11.0)Jerry James
2022-07-24Support arguments of width 128, 256 and 512 bits for external callsPavel
2022-07-04Inline asm external callMikhail
2022-07-04Fix memory leak in crosscheck core solver mechanismDaniel Schemmel
2022-06-30rename CallSite to CallBaseFrank Busse
2022-06-30remove LLVM < 9Frank Busse
2022-06-28Implement getArrayForUpdate iterativelyDaniel Schemmel
2022-06-26Intrinsics: Add support for @llvm.f{ma,muladd}.f*Lukáš Zaoral
2022-06-15Spelling Fixesm-davis
2022-06-13.err files: minor readability changes to stack trace outputFrank Busse
2022-06-13Update SpecialFunctionHandler.cppChaoqi Zhang
use size() to get N in bind(), just like the way in prepare().
2022-05-05cl flags: document default values, remove dead option: --replay-keep-symbolicFrank Busse
2022-04-25use mallinfo2 if availableFrank Busse
2022-04-01Remove unnecessary call to deprecated function sqlite3_enable_shared_cacheCristian Cadar
2022-03-21Fixed a wrong type when computing memory usage on macOSCristian Cadar
2022-03-17remove obsolete KLEE_LLVM legacy definesJulian Büning
2022-03-17LLVM < 6 leftoversJulian Büning
2022-03-17remove LLVM < 6 from sourcesFrank Busse
2022-03-17Fixed GetTotalMallocUsage on macOS to look at all zones. (The test ↵Cristian Cadar
MemoryLimit.h fails on macOS 12.1 without this fix.)
2022-03-09Core/Executor: Fix unaligned write of fp80 argumentsLukáš Zaoral
... in Executor::callExternalFunction. Fixes the following error reported in Feature/VarArg{Alignment,LongDouble}.c tests: lib/Expr/Expr.cpp:366:5: runtime error: store to misaligned address 0x7ffc011d3528 for type 'long double', which requires 16 byte alignment
2022-03-09Core/ExecutionState: Fix uninitialized reads in unit testsLukáš Zaoral
... by initialising all members of fundamental types of the ExecutionState class. Fixes the following error in SearcherTest.{Two,}RandomPath unit tests: lib/Core/ExecutionState.cpp:114:22: runtime error: load of value 254, which is not a valid value for type 'bool'
2022-01-07stats: remove reachableUncovered (unused)Frank Busse
2022-01-06Comment the code dealing with un/flushed bytes, and resolve old naming issue ↵Cristian Cadar
by renaming flushMask to unflushedMask
2022-01-05introduce BranchTypesFrank Busse
2022-01-05Remove outdated reference to klee_make_symbolic_nameCristian Cadar
2021-12-23Introduce termination categoriesFrank Busse
Track all path terminations: esp. for debugging or visualising a persistent process tree (with or without full MoKlee integration) it is helpful to know the exact reason (StateTerminationType) why a path terminated.
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::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-11-20Fixed fail with preferCex, removed relation from first argumentTaras Bereznyak
2021-11-02Core/Executor: use `nullptr` instead of `0`ᴀᴇꜱᴏᴘʜᴏʀ
Since KLEE requires C++14, we should prefer `nullptr` to plain `0`.
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-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-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-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-04differentiate between partial and completed paths in summary and fix paths ↵Frank Busse
stats when not dumping states