/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, 173 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: struct.sl_item --> BasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item) struct.sl --> BasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item) Global variables: Function declarations and definitions: *BasicFunctionTypename: "malloc" returnParam: *i8 noalias parameters: (i64) variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "free" returnParam: BasicVoidType parameters: (*i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "alloc_or_die" linkageType: EXTERNALLY_VISIBLE returnParam: *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item) parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %pi = alloca *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item), align 8 %1 = call noalias *i8 @malloc(i64 24) nounwind %2 = bitcast *i8 %1 to *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item) store %2, %pi %3 = load %pi ret %3 *BasicFunctionTypename: "create_sl_with_head_and_tail" linkageType: EXTERNALLY_VISIBLE returnParam: *BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item) parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %sl = alloca *BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item), align 8 %1 = call noalias *i8 @malloc(i64 16) nounwind %2 = bitcast *i8 %1 to *BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item) store %2, %sl %3 = call noalias *i8 @malloc(i64 24) nounwind %4 = bitcast *i8 %3 to *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item) %5 = load %sl %6 = getelementptr %5, 0, 0 store %4, %6 %7 = call noalias *i8 @malloc(i64 24) nounwind %8 = bitcast *i8 %7 to *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item) %9 = load %sl %10 = getelementptr %9, 0, 1 store %8, %10 %11 = load %sl %12 = getelementptr %11, 0, 1 %13 = load %12 %14 = load %sl %15 = getelementptr %14, 0, 0 %16 = load %15 %17 = getelementptr %16, 0, 0 store %13, %17 %18 = load %sl %19 = getelementptr %18, 0, 0 %20 = load %19 %21 = getelementptr %20, 0, 1 store %13, %21 %22 = load %sl %23 = getelementptr %22, 0, 0 %24 = load %23 %25 = getelementptr %24, 0, 2 store %13, %25 %26 = load %sl %27 = getelementptr %26, 0, 1 %28 = load %27 %29 = getelementptr %28, 0, 0 store null, %29 %30 = load %sl %31 = getelementptr %30, 0, 1 %32 = load %31 %33 = getelementptr %32, 0, 1 store null, %33 %34 = load %sl %35 = getelementptr %34, 0, 1 %36 = load %35 %37 = getelementptr %36, 0, 2 store null, %37 %38 = load %sl ret %38 *BasicFunctionTypename: "sl_random_insert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (sl *BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item), align 8 %a1 = alloca *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item), align 8 %a2 = alloca *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item), align 8 %a3 = alloca *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item), align 8 %new = alloca *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item), align 8 store %sl, %1 %2 = load %1 %3 = getelementptr %2, 0, 0 %4 = load %3 store %4, %a3 br %5 5: %6 = load %a3 %7 = getelementptr %6, 0, 2 %8 = load %7 %9 = load %1 %10 = getelementptr %9, 0, 1 %11 = load %10 %12 = icmp ne %8 %11 br %12, %13, %16 13: %14 = call i32 (...)* @__VERIFIER_nondet_int() %15 = icmp ne %14 0 br %16 16: %17 = phi [0, %5], [%15, %13] br %17, %18, %22 18: %19 = load %a3 %20 = getelementptr %19, 0, 2 %21 = load %20 store %21, %a3 br %5 22: %23 = load %a3 store %23, %a2 br %24 24: %25 = load %a2 %26 = getelementptr %25, 0, 1 %27 = load %26 %28 = load %a3 %29 = getelementptr %28, 0, 2 %30 = load %29 %31 = icmp ne %27 %30 br %31, %32, %35 32: %33 = call i32 (...)* @__VERIFIER_nondet_int() %34 = icmp ne %33 0 br %35 35: %36 = phi [0, %24], [%34, %32] br %36, %37, %41 37: %38 = load %a2 %39 = getelementptr %38, 0, 1 %40 = load %39 store %40, %a2 br %24 41: %42 = load %a2 store %42, %a1 br %43 43: %44 = load %a1 %45 = getelementptr %44, 0, 0 %46 = load %45 %47 = load %a2 %48 = getelementptr %47, 0, 1 %49 = load %48 %50 = icmp ne %46 %49 br %50, %51, %54 51: %52 = call i32 (...)* @__VERIFIER_nondet_int() %53 = icmp ne %52 0 br %54 54: %55 = phi [0, %43], [%53, %51] br %55, %56, %60 56: %57 = load %a1 %58 = getelementptr %57, 0, 0 %59 = load %58 store %59, %a1 br %43 60: %61 = call noalias *i8 @malloc(i64 24) nounwind %62 = bitcast *i8 %61 to *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item) store %62, %new %63 = load %a1 %64 = getelementptr %63, 0, 0 %65 = load %64 %66 = load %new %67 = getelementptr %66, 0, 0 store %65, %67 %68 = load %new %69 = load %a1 %70 = getelementptr %69, 0, 0 store %68, %70 %71 = call i32 (...)* @__VERIFIER_nondet_int() %72 = icmp ne %71 0 br %72, %73, %94 73: %74 = load %a2 %75 = getelementptr %74, 0, 1 %76 = load %75 %77 = load %new %78 = getelementptr %77, 0, 1 store %76, %78 %79 = load %new %80 = load %a2 %81 = getelementptr %80, 0, 1 store %79, %81 %82 = call i32 (...)* @__VERIFIER_nondet_int() %83 = icmp ne %82 0 br %83, %84, %93 84: %85 = load %a3 %86 = getelementptr %85, 0, 2 %87 = load %86 %88 = load %new %89 = getelementptr %88, 0, 2 store %87, %89 %90 = load %new %91 = load %a3 %92 = getelementptr %91, 0, 2 store %90, %92 br %93 93: br %94 94: ret void *BasicFunctionTypename: "destroy_sl" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (sl *BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item), align 8 %tmp = alloca *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item), align 8 store %sl, %1 br %2 2: %3 = load %1 %4 = getelementptr %3, 0, 0 %5 = load %4 %6 = icmp ne %5 null br %6, %7, %20 7: %8 = load %1 %9 = getelementptr %8, 0, 0 %10 = load %9 store %10, %tmp %11 = load %1 %12 = getelementptr %11, 0, 0 %13 = load %12 %14 = getelementptr %13, 0, 0 %15 = load %14 %16 = load %1 %17 = getelementptr %16, 0, 0 store %15, %17 %18 = load %tmp %19 = bitcast *BasicTypeName typeName: struct.sl_itemBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item, elementType: *struct.sl_item) %18 to *i8 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %19) nounwind br %2 20: %21 = load %1 %22 = bitcast *BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item) %21 to *i8 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %22) nounwind ret void *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %sl = alloca *BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item), align 8 store 0, %1 %2 = call *BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item) @create_sl_with_head_and_tail() store %2, %sl br %3 3: %4 = call i32 (...)* @__VERIFIER_nondet_int() %5 = icmp ne %4 0 br %5, %6, %8 6: %7 = load %sl Unnamed Call-Instruction = call BasicVoidType @sl_random_insert(*BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item) %7) br %3 8: %9 = load %sl Unnamed Call-Instruction = call BasicVoidType @destroy_sl(*BasicTypeName typeName: struct.slBasicStructureType(elementType: *struct.sl_item, elementType: *struct.sl_item) %9) ret 0 Analyze Termination of all function calls matching the pattern: main()