Age | Commit message (Collapse) | Author |
|
It performs differential ShellCheck scans and report results directly in pull request.
documentation: https://github.com/redhat-plumbers-in-action/differential-shellcheck
Signed-off-by: Jan Macku <jamacku@redhat.com>
|
|
According to i686 System V ABI 2.1.1, long double must be aligned to 4 bytes.
Thus, its size with padding is 12 bytes. Prior to this change only 10 bytes
were used.
This commit fixes the following out of bound pointer access.
```
$ clang -m32 -O0 -Xclang -disable-O0-optnone -g -emit-llvm -c test/Feature/VarArgAlignment.c -o varalign.bc
$ klee varalign.bc
KLEE: output directory is "/home/lukas/klee/klee-out-19"
KLEE: Using Z3 solver backend
KLEE: WARNING: undefined reference to function: printf
KLEE: WARNING ONCE: calling external: printf(44120064, 1, 2, 3) at test/Feature/VarArgAlignment.c:23 17
i1, i2, i3: 1, 2, 3
l1: 4
i4: 5
ld1: 6.000000
KLEE: ERROR: test/Feature/VarArgAlignment.c:35: memory error: out of bound pointer
KLEE: NOTE: now ignoring this error at this location
KLEE: done: total instructions = 499
KLEE: done: completed paths = 1
KLEE: done: generated tests = 1
```
|
|
Otherwise we see errors like this with gcc13:
include/klee/Statistics/Statistic.h:31:10: error: no type named 'uint32_t' in namespace 'std'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
expected to fail.
|
|
CryptoMinisat
|
|
With recent LLVM versions, this should allow to link against dynamic LLVM
libraries.
|
|
|
|
This is the default version for Ubuntu 20.04 and should be available
for most distributions.
Moreover this should allow to move STP forward with their changes.
(https://github.com/stp/stp/issues/375#issuecomment-889178863)
|
|
|
|
|
|
|
|
Under 64bit architecture, a ptr-error might be found.
Ignore this for now.
|
|
Ignore test in the first place, if no 32bit is enabled.
|
|
Previously, the code did two consecutive checks. First one succeeded
only if the given index was not already seen and the second one did
an analogous check but for arrays. However, if the given index usage
was already detected for some array, its usage for another array that
already had some other index detected would be silently skipped and the
`incompatible` flag would not be set.
Therefore, if the code contained e.g. the following conditional jump on two
arrays with two symbolic indices, the multi-index access would remain
undetected:
if ((array1[k] + array2[x] + array2[k]) == 0)
Resulting in the following output:
KLEE: WARNING: OPT_I: infeasible branch!
KLEE: WARNING: OPT_I: successful
|
|
|
|
LLVM 14 has introduced the noundef function argument attribute.
|
|
... for LLVM 14 in [1] and has already been removed from the LLVM 15
branch in [2].
Some changes are only temporary to silence the warning though, as
Type::getPointerElementType() is planned to be removed as well. [3]
[1] https://reviews.llvm.org/D117885/new/
[2] https://github.com/llvm/llvm-project/commit/d593cf7
[3] https://llvm.org/docs/OpaquePointers.html#migration-instructions
|
|
|
|
|
|
|
|
|
|
* Use Ubuntu 22.04 instead of 18.04
* Use LLVM 11 instead of 9
* Use TCMalloc 2.9.1
* Use Z3 4.8.15
* Use Sqlite3 3400100
Clean-up comments and structure to satisfy yaml linter
|
|
|
|
* Use Ubuntu 22.04
* Use newer TCMalloc 2.9.1
* use Z3 4.8.15
* Use SQLite 3400100
|
|
|
|
|
|
|
|
`>>` can fail and sets internal error information in the istream.
Check the state of istream before pushing the value onto the buffer.
|
|
Former build system provided additional flags for building bitcode while
they were not required, e.g. under BSD or MacOS.
|
|
|
|
* Support for Ubuntu 22.04
* Remove support for Python2
* Better separation between sanitizer builds and non-sanitizer builds
* Fix build of metaSMT on newer Ubuntu versions
* Use ninja to build LLVM
* Simplifying building arbitrary LLVM configurations, e.g. different
LLVM sanitizer builds (MemSan, UBSan, ASan)
* Use MemSan with origin tracking
* Build sqlite3 container correctly
* Add support to provide sqlite3 version number
|
|
|