/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could not be shown: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 171 ms] (2) LLVM problem ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Name: n initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: a initVal: null type: *i32 addrSpace: null alignment: 8 threadLocal: false constant: false linkageType: COMMON section: null Name: b initVal: null type: *i32 addrSpace: null alignment: 8 threadLocal: false constant: false linkageType: COMMON section: null Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "malloc" returnParam: *i8 noalias parameters: (i64) variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "free" returnParam: BasicVoidType parameters: (*i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "foo" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %i = alloca i32, align 4 store 0, %i br %1 1: %2 = load %i %3 = load @n %4 = icmp slt %2 %3 br %4, %5, %14 5: %6 = load @n %7 = load %i %8 = sext i32 %7 to i64 %9 = load @a %10 = getelementptr %9, %8 store %6, %10 br %11 11: %12 = load %i %13 = add %12 1 store %13, %i br %1 14: store 0, %i br %15 15: %16 = load %i %17 = load @n %18 = sub %17 1 %19 = icmp slt %16 %18 br %19, %20, %29 20: %21 = load @n %22 = load %i %23 = sext i32 %22 to i64 %24 = load @b %25 = getelementptr %24, %23 store %21, %25 br %26 26: %27 = load %i %28 = add %27 1 store %28, %i br %15 29: ret void *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store 0, %1 store 1, @n br %2 2: %3 = call i32 @__VERIFIER_nondet_int() %4 = icmp ne %3 0 br %4, %5, %8 5: %6 = load @n %7 = icmp slt %6 30 br %8 8: %9 = phi [0, %2], [%7, %5] br %9, %10, %13 10: %11 = load @n %12 = add %11 1 store %12, @n br %2 13: %14 = load @n %15 = sext i32 %14 to i64 %16 = mul %15 4 %17 = call noalias *i8 @malloc(i64 %16) nounwind %18 = bitcast *i8 %17 to *i32 store %18, @a %19 = load @n %20 = sext i32 %19 to i64 %21 = mul %20 4 %22 = call noalias *i8 @malloc(i64 %21) nounwind %23 = bitcast *i8 %22 to *i32 store %23, @b %24 = load @n %25 = load @b %26 = getelementptr %25, 1 store %26, @b store %24, %25 Unnamed Call-Instruction = call BasicVoidType @foo() %27 = load @b %28 = getelementptr %27, -1 %29 = load %28 %30 = load @n %31 = sub %30 2 %32 = sext i32 %31 to i64 %33 = load @b %34 = getelementptr %33, %32 %35 = load %34 %36 = sub %29 %35 %37 = icmp ne %36 0 br %37, %38, %43 38: %39 = load @a %40 = bitcast *i32 %39 to *i8 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %40) nounwind %41 = load @b %42 = bitcast *i32 %41 to *i8 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %42) nounwind br %49 43: %44 = load @a %45 = bitcast *i32 %44 to *i8 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %45) nounwind %46 = load @b %47 = getelementptr %46, -1 %48 = bitcast *i32 %47 to *i8 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %48) nounwind br %49 49: ret 0 Analyze Termination of all function calls matching the pattern: main()