[ 0:01] compiling /var/obj/divine-nightly/semidbg/test/_expand/svcomp/recursion/gcd01_true.pkg.c/big.10.c [ 0:01] compiling /dios/lib/config/seqklee.bc [ 0:01] 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.0/_klee_out" [ 0:04] KLEE: Using Z3 solver backend [ 0:04] WARNING: this target does not support the llvm.stacksave intrinsic. [ 0:04] 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:04] [ 0:04] KLEE: WARNING: undefined reference to function: __dios_tainted_init [ 0:06] KLEE: WARNING: undefined reference to function: klee_free [ 0:06] KLEE: WARNING: undefined reference to function: klee_malloc [ 0:06] i:1 [ 0:06] KLEE: WARNING ONCE: Alignment of memory from call "klee_malloc" is not modelled. Using alignment of 8. [ 0:06] about to __boot:0 [ 0:06] about to run the scheduler:0 [ 0:06] KLEE: WARNING ONCE: calling external: __dios_tainted_init() at /dios/libc/sys/start.cpp:49 5 [ 0:06] KLEE: ERROR: /dios/libc/sys/start.cpp:87: failed external call: __dios_tainted_init [ 0:06] KLEE: NOTE: now ignoring this error at this location [ 0:06] KLEE: ERROR: EXITING ON ERROR: [ 0:06] Error: failed external call: __dios_tainted_init [ 0:06] File: /dios/libc/sys/start.cpp [ 0:06] Line: 87 [ 0:06] assembly.ll line: 34135 [ 0:06] Stack: [ 0:06] #000034135 in __dios_start (l=0, argc=1, argv=94376443777544, envp=94376443854856) at /dios/libc/sys/start.cpp:87 [ 0:06] #100010154 in _ZN6__dios10sched_nullINS_5ClockINS_10NondetKleeINS_4BaseEEEEEE13run_schedulerINS_7ContextEEEvv () at /dios/sys/sched_null.hpp:163 [ 0:06] #200042485 in klee_boot (argc=2, argv=94376418761472) at /dios/arch/klee/boot.c:41 [ 0:06] [ 0:06] [ 0:06] 1 /* TAGS: ext c sym */ [ 0:06] 2 /* VERIFY_OPTS: --symbolic --sequential -o nofail:malloc */ [ 0:06] 3 /* CC_OPTS: -DNUM=10 */ [ 0:06] 4 [ 0:06] 5 extern void __VERIFIER_error() __attribute__ ((__noreturn__)); [ 0:06] 6 [ 0:06] 7 /* [ 0:06] 8 * Recursive implementation of the greatest common denominator [ 0:06] 9 * using Euclid's algorithm [ 0:06] 10 * [ 0:06] 11 * Author: Jan Leike [ 0:06] 12 * Date: 2013-07-17 [ 0:06] 13 * [ 0:06] 14 */ [ 0:06] 15 [ 0:06] 16 // V: small.5 CC_OPT: -DNUM=5 [ 0:06] 17 // V: big.10 CC_OPT: -DNUM=10 TAGS: ext [ 0:06] 18 // V: big.100 CC_OPT: -DNUM=100 TAGS: big [ 0:06] 19 // V: big.1000 CC_OPT: -DNUM=1000 TAGS: big [ 0:06] 20 // V: big.2147483647 CC_OPT: -DNUM=2147483647 TAGS: big [ 0:06] 21 [ 0:06] 22 extern int __VERIFIER_nondet_int(void); [ 0:06] 23 [ 0:06] 24 // Compute the greatest common denominator using Euclid's algorithm [ 0:06] 25 int gcd(int y1, int y2) { [ 0:06] 26 if (y1 <= 0 || y2 <= 0) { [ 0:06] 27 return 0; [ 0:06] 28 } [ 0:06] 29 if (y1 == y2) { [ 0:06] 30 return y1; [ 0:06] 31 } [ 0:06] 32 if (y1 > y2) { [ 0:06] 33 return gcd(y1 - y2, y2); [ 0:06] 34 } [ 0:06] 35 return gcd(y1, y2 - y1); [ 0:06] 36 } [ 0:06] 37 [ 0:06] 38 int main() { [ 0:06] 39 int m = __VERIFIER_nondet_int(); [ 0:06] 40 if (m <= 0 || m > NUM) { [ 0:06] 41 return 0; [ 0:06] 42 } [ 0:06] 43 int n = __VERIFIER_nondet_int(); [ 0:06] 44 if (n <= 0 || n > NUM) { [ 0:06] 45 return 0; [ 0:06] 46 } [ 0:06] 47 int z = gcd(m, n); [ 0:06] 48 if (z < 1 && m > 0 && n > 0) { [ 0:06] 49 ERROR: __VERIFIER_error(); [ 0:06] 50 } else { [ 0:06] 51 return 0; [ 0:06] 52 } [ 0:06] 53 } [ 0:06] # no errors were expected but one was found anyway