Open
Description
After I switched from llvm 16 to llvm 17, I see a lot of errors in tests:
# command stderr:
KLEE: NOTE: Using POSIX model: /home/abuild/rpmbuild/BUILD/klee-3.1+20241105/build/runtime/lib/libkleeRuntimePOSIX64_Debug+Asserts.bca
KLEE: NOTE: Using klee-uclibc : /home/abuild/rpmbuild/BUILD/klee-3.1+20241105/build/runtime/lib/klee-uclibc.bca
KLEE: output directory is "/home/abuild/rpmbuild/BUILD/klee-3.1+20241105/build/test/Runtime/POSIX/Output/DirConsistency.c.tmp.klee-out"
KLEE: Using STP solver backend
KLEE: SAT solver: MiniSat
KLEE: Deterministic allocator: Using quarantine queue size 8
KLEE: Deterministic allocator: globals (start-address=0x7f6258557000 size=10 GiB)
KLEE: Deterministic allocator: constants (start-address=0x7f5fd8557000 size=10 GiB)
KLEE: Deterministic allocator: heap (start-address=0x7e5fd8557000 size=1024 GiB)
KLEE: Deterministic allocator: stack (start-address=0x7e3fd8557000 size=128 GiB)
KLEE: WARNING ONCE: calling external: syscall(16, 0, 21505, 138857774673920) at runtime/POSIX/fd.c:997 10
KLEE: WARNING: unimplemented intrinsic: llvm.memcpy.p0.p0.i64
KLEE: ERROR: runtime/POSIX/klee_init_env.c:96: unimplemented intrinsic
KLEE: NOTE: now ignoring this error at this location
KLEE: ERROR: EXITING ON ERROR:
Error: unimplemented intrinsic
File: runtime/POSIX/klee_init_env.c
Line: 96
assembly.ll line: 6317
State: 1
Stack:
#000006317 in klee_init_env(138822341193728, 138831467999232) at runtime/POSIX/klee_init_env.c:96
#100007239 in __user_main(4, 140067344838656, 140067344838696) at runtime/POSIX/klee_init_env.c:244
#200000533 in __uClibc_main(140052572499968, 4, 140067344838656, 0, 0, 0, 0) at libc/misc/internals/__uClibc_main.c:401
#300000698 in main(4, 140067344838656)
error: command failed with exit status: 1
...
KLEE :: Runtime/POSIX/DirConsistency.c
...
Unexpected Failures: 92
assembly.ll
spells this on the failing line:
call void @llvm.memcpy.p0.p0.i64(ptr align 1 %20, ptr align 1 @__const.klee_init_env.sym_arg_name, i64 6, i1 false), !dbg !5670
This I see when I grep for unimplemented
(I don't know which are new with llvm 17):
KLEE: WARNING: unimplemented intrinsic: llvm.assume
KLEE: WARNING: unimplemented intrinsic: llvm.cttz.i32
KLEE: WARNING: unimplemented intrinsic: llvm.is.constant.i32
KLEE: WARNING: unimplemented intrinsic: llvm.lifetime.start.p0
KLEE: WARNING: unimplemented intrinsic: llvm.memcpy.p0.p0.i64
KLEE: WARNING: unimplemented intrinsic: llvm.memset.p0.i64
KLEE: WARNING: unimplemented intrinsic: llvm.minnum.f32
KLEE: WARNING: unimplemented intrinsic: llvm.objectsize.i64.p0
KLEE: WARNING: unimplemented intrinsic: llvm.ptrmask.p0.i64
KLEE: WARNING: unimplemented intrinsic: llvm.sadd.with.overflow.i32
KLEE: WARNING: unimplemented intrinsic: llvm.smul.with.overflow.i64
KLEE: WARNING: unimplemented intrinsic: llvm.stacksave
KLEE: WARNING: unimplemented intrinsic: llvm.trap
KLEE: WARNING: unimplemented intrinsic: llvm.uadd.sat.i8
KLEE: WARNING: unimplemented intrinsic: llvm.uadd.with.overflow.i32
KLEE: WARNING: unimplemented intrinsic: llvm.uadd.with.overflow.i8
KLEE: WARNING: unimplemented intrinsic: llvm.umul.with.overflow.i32
KLEE: WARNING: unimplemented intrinsic: llvm.umul.with.overflow.i8