[ 0:00] compiling /home/xrockai/src/divine/nightly/test/svcomp/bitvector/interleave_bits_true.c [ 0:00] compiling /dios/lib/config/seqklee.bc [ 0:00] setting up pass: functionmeta, options = [ 0:02] setting up pass: fuse-ctors, options = [ 0:02] KLEE: output directory is "/var/obj/divine-nightly/semidbg/test/__test_work_dir.23/_klee_out" [ 0:05] KLEE: Using Z3 solver backend [ 0:05] WARNING: this target does not support the llvm.stacksave intrinsic. [ 0:05] warning: Linking two modules of different target triples: klee_div_zero_check.bc' is 'x86_64-unknown-linux-gnu' whereas 'klee.bc' is 'x86_64-unknown-none-elf' [ 0:05] [ 0:05] KLEE: WARNING: undefined reference to function: __dios_tainted_init [ 0:07] KLEE: WARNING: undefined reference to function: klee_free [ 0:07] KLEE: WARNING: undefined reference to function: klee_malloc [ 0:07] about to __boot:0 [ 0:07] KLEE: WARNING ONCE: Alignment of memory from call "klee_malloc" is not modelled. Using alignment of 8. [ 0:07] about to run the scheduler:0 [ 0:07] KLEE: WARNING ONCE: calling external: __dios_tainted_init() at /dios/libc/sys/start.cpp:49 5 [ 0:07] KLEE: ERROR: /dios/libc/sys/start.cpp:87: failed external call: __dios_tainted_init [ 0:07] KLEE: NOTE: now ignoring this error at this location [ 0:07] KLEE: ERROR: EXITING ON ERROR: [ 0:07] Error: failed external call: __dios_tainted_init [ 0:07] File: /dios/libc/sys/start.cpp [ 0:07] Line: 87 [ 0:07] assembly.ll line: 34138 [ 0:07] Stack: [ 0:07] #000034138 in __dios_start (l=0, argc=1, argv=94756276273160, envp=94756276291592) at /dios/libc/sys/start.cpp:87 [ 0:07] #100010149 in _ZN6__dios10sched_nullINS_5ClockINS_10NondetKleeINS_4BaseEEEEEE13run_schedulerINS_7ContextEEEvv () at /dios/sys/sched_null.hpp:163 [ 0:07] #200042488 in klee_boot (argc=1, argv=94756263397440) at /dios/arch/klee/boot.c:41 [ 0:07] [ 0:07] [ 0:07] 1 /* VERIFY_OPTS: --symbolic --sequential */ [ 0:07] 2 /* TAGS: sym c */ [ 0:07] 3 [ 0:07] 4 extern void __VERIFIER_assert(int);/* https://graphics.stanford.edu/~seander/bithacks.html#InterleaveTableObvious */ [ 0:07] 5 [ 0:07] 6 extern int __VERIFIER_nondet_int(void); [ 0:07] 7 [ 0:07] 8 int main() [ 0:07] 9 { [ 0:07] 10 /* Interleave bits of x and y, so that all of the */ [ 0:07] 11 /* bits of x are in the even positions and y in the odd; */ [ 0:07] 12 unsigned short x = __VERIFIER_nondet_int(); [ 0:07] 13 unsigned short y = __VERIFIER_nondet_int(); [ 0:07] 14 [ 0:07] 15 unsigned int xx = __VERIFIER_nondet_int(); [ 0:07] 16 unsigned int yy = __VERIFIER_nondet_int(); [ 0:07] 17 unsigned int zz = __VERIFIER_nondet_int(); [ 0:07] 18 [ 0:07] 19 unsigned int z = 0; /* z gets the resulting Morton Number. */ [ 0:07] 20 unsigned int i = 0; [ 0:07] 21 [ 0:07] 22 while (i < 32U) { [ 0:07] 23 z |= ((x & (1U << i)) << i) | ((y & (1U << i)) << (i + 1)); [ 0:07] 24 i += 1U; [ 0:07] 25 } [ 0:07] 26 [ 0:07] 27 xx = x; [ 0:07] 28 yy = y; [ 0:07] 29 [ 0:07] 30 xx = (xx | (xx << 8u)) & 16711935U; /* 0x00FF00FF */ [ 0:07] 31 xx = (xx | (xx << 4u)) & 252645135U; /* 0x0F0F0F0F */ [ 0:07] 32 xx = (xx | (xx << 2u)) & 858993459U; /* 0x33333333 */ [ 0:07] 33 xx = (xx | (xx << 1u)) & 1431655765U; /* 0x55555555 */ [ 0:07] 34 [ 0:07] 35 yy = (yy | (yy << 8u)) & 16711935U; /* 0x00FF00FF */ [ 0:07] 36 yy = (yy | (yy << 4u)) & 252645135U; /* 0x0F0F0F0F */ [ 0:07] 37 yy = (yy | (yy << 2u)) & 858993459U; /* 0x33333333 */ [ 0:07] 38 yy = (yy | (yy << 1u)) & 1431655765U; /* 0x55555555 */ [ 0:07] 39 [ 0:07] 40 zz = xx | (yy << 1U); [ 0:07] 41 [ 0:07] 42 __VERIFIER_assert(z == zz); [ 0:07] 43 } [ 0:07] # no errors were expected but one was found anyway