20.02/7.78 MAYBE 20.02/7.79 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 20.02/7.79 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 20.02/7.79 20.02/7.79 20.02/7.79 Termination of the given C Problem could not be shown: 20.02/7.79 20.02/7.79 (0) C Problem 20.02/7.79 (1) CToLLVMProof [EQUIVALENT, 167 ms] 20.02/7.79 (2) LLVM problem 20.02/7.79 20.02/7.79 20.02/7.79 ---------------------------------------- 20.02/7.79 20.02/7.79 (0) 20.02/7.79 Obligation: 20.02/7.79 c file /export/starexec/sandbox/benchmark/theBenchmark.c 20.02/7.79 ---------------------------------------- 20.02/7.79 20.02/7.79 (1) CToLLVMProof (EQUIVALENT) 20.02/7.79 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 20.02/7.79 ---------------------------------------- 20.02/7.79 20.02/7.79 (2) 20.02/7.79 Obligation: 20.02/7.79 LLVM Problem 20.02/7.79 20.02/7.79 Aliases: 20.02/7.79 20.02/7.79 Data layout: 20.02/7.79 20.02/7.79 "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" 20.02/7.79 20.02/7.79 Machine: 20.02/7.79 20.02/7.79 "x86_64-pc-linux-gnu" 20.02/7.79 20.02/7.79 Type definitions: 20.02/7.79 20.02/7.79 struct.node --> BasicStructureType(elementType: i32, elementType: *struct.node) 20.02/7.79 20.02/7.79 Global variables: 20.02/7.79 20.02/7.79 Function declarations and definitions: 20.02/7.79 20.02/7.79 *BasicFunctionTypename: "malloc" returnParam: *i8 noalias parameters: (i64) variableLength: false visibilityType: DEFAULT callingConvention: ccc 20.02/7.79 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 20.02/7.79 *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 20.02/7.79 *BasicFunctionTypename: "exit" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (s i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 20.02/7.79 0: 20.02/7.79 %1 = alloca i32, align 4 20.02/7.79 store %s, %1 20.02/7.79 br %2 20.02/7.79 2: 20.02/7.79 br %2 20.02/7.79 3: 20.02/7.79 ret void 20.02/7.79 20.02/7.79 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 20.02/7.79 0: 20.02/7.79 %1 = alloca i32, align 4 20.02/7.79 %flag = alloca i32, align 4 20.02/7.79 %a = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 20.02/7.79 %t = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 20.02/7.79 %l1 = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 20.02/7.79 %l2 = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 20.02/7.79 %b = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 20.02/7.79 %u = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 20.02/7.79 %p = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 20.02/7.79 store 0, %1 20.02/7.79 store 1, %flag 20.02/7.79 %2 = call noalias *i8 @malloc(i64 16) nounwind 20.02/7.79 %3 = bitcast *i8 %2 to *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node) 20.02/7.79 store %3, %a 20.02/7.79 %4 = load %a 20.02/7.79 %5 = icmp eq %4 null 20.02/7.79 br %5, %6, %7 20.02/7.79 6: 20.02/7.79 Unnamed Call-Instruction = call BasicVoidType @exit(i32 1) noreturn nounwind 20.02/7.79 unreachable 20.02/7.79 7: 20.02/7.79 %8 = load %a 20.02/7.79 store %8, %p 20.02/7.79 br %9 20.02/7.79 9: 20.02/7.79 %10 = call i32 (...)* @__VERIFIER_nondet_int() 20.02/7.79 %11 = icmp ne %10 0 20.02/7.79 br %11, %12, %34 20.02/7.79 12: 20.02/7.79 %13 = load %flag 20.02/7.79 %14 = icmp ne %13 0 20.02/7.79 br %14, %15, %18 20.02/7.79 15: 20.02/7.79 %16 = load %p 20.02/7.79 %17 = getelementptr %16, 0, 0 20.02/7.79 store 1, %17 20.02/7.79 store 0, %flag 20.02/7.79 br %21 20.02/7.79 18: 20.02/7.79 %19 = load %p 20.02/7.79 %20 = getelementptr %19, 0, 0 20.02/7.79 store 2, %20 20.02/7.79 store 1, %flag 20.02/7.79 br %21 20.02/7.79 21: 20.02/7.79 %22 = call noalias *i8 @malloc(i64 16) nounwind 20.02/7.79 %23 = bitcast *i8 %22 to *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node) 20.02/7.79 store %23, %t 20.02/7.79 %24 = load %t 20.02/7.79 %25 = icmp eq %24 null 20.02/7.79 br %25, %26, %27 20.02/7.79 26: 20.02/7.79 Unnamed Call-Instruction = call BasicVoidType @exit(i32 1) noreturn nounwind 20.02/7.79 unreachable 20.02/7.79 27: 20.02/7.79 %28 = load %t 20.02/7.79 %29 = load %p 20.02/7.79 %30 = getelementptr %29, 0, 1 20.02/7.79 store %28, %30 20.02/7.79 %31 = load %p 20.02/7.79 %32 = getelementptr %31, 0, 1 20.02/7.79 %33 = load %32 20.02/7.79 store %33, %p 20.02/7.79 br %9 20.02/7.79 34: 20.02/7.79 %35 = load %p 20.02/7.79 %36 = getelementptr %35, 0, 0 20.02/7.79 store 3, %36 20.02/7.79 %37 = load %a 20.02/7.79 %38 = getelementptr %37, 0, 0 20.02/7.79 %39 = load %38 20.02/7.79 %40 = icmp eq %39 3 20.02/7.79 br %40, %41, %42 20.02/7.79 41: 20.02/7.79 store 0, %1 20.02/7.79 br %99 20.02/7.79 42: 20.02/7.79 store 1, %flag 20.02/7.79 store null, %l1 20.02/7.79 store null, %l2 20.02/7.79 %43 = load %a 20.02/7.79 store %43, %p 20.02/7.79 br %44 20.02/7.79 44: 20.02/7.79 %45 = load %p 20.02/7.79 %46 = getelementptr %45, 0, 0 20.02/7.79 %47 = load %46 20.02/7.79 %48 = icmp ne %47 3 20.02/7.79 br %48, %49, %67 20.02/7.79 49: 20.02/7.79 %50 = load %p 20.02/7.79 store %50, %t 20.02/7.79 %51 = load %p 20.02/7.79 %52 = getelementptr %51, 0, 1 20.02/7.79 %53 = load %52 20.02/7.79 store %53, %p 20.02/7.79 %54 = load %flag 20.02/7.79 %55 = icmp ne %54 0 20.02/7.79 br %55, %56, %61 20.02/7.79 56: 20.02/7.79 %57 = load %l1 20.02/7.79 %58 = load %t 20.02/7.79 %59 = getelementptr %58, 0, 1 20.02/7.79 store %57, %59 20.02/7.79 %60 = load %t 20.02/7.79 store %60, %l1 20.02/7.79 store 0, %flag 20.02/7.79 br %66 20.02/7.79 61: 20.02/7.79 %62 = load %l2 20.02/7.79 %63 = load %t 20.02/7.79 %64 = getelementptr %63, 0, 1 20.02/7.79 store %62, %64 20.02/7.79 %65 = load %t 20.02/7.79 store %65, %l2 20.02/7.79 store 1, %flag 20.02/7.79 br %66 20.02/7.79 66: 20.02/7.79 br %44 20.02/7.79 67: 20.02/7.79 %68 = load %l1 20.02/7.79 store %68, %p 20.02/7.79 br %69 20.02/7.79 69: 20.02/7.79 %70 = load %p 20.02/7.79 %71 = icmp ne %70 null 20.02/7.79 br %71, %72, %82 20.02/7.79 72: 20.02/7.79 %73 = load %p 20.02/7.79 %74 = getelementptr %73, 0, 0 20.02/7.79 %75 = load %74 20.02/7.79 %76 = icmp ne %75 1 20.02/7.79 br %76, %77, %78 20.02/7.79 77: 20.02/7.79 br %98 20.02/7.79 78: 20.02/7.79 %79 = load %p 20.02/7.79 %80 = getelementptr %79, 0, 1 20.02/7.79 %81 = load %80 20.02/7.79 store %81, %p 20.02/7.79 br %69 20.02/7.79 82: 20.02/7.79 %83 = load %l2 20.02/7.79 store %83, %p 20.02/7.79 br %84 20.02/7.79 84: 20.02/7.79 %85 = load %p 20.02/7.79 %86 = icmp ne %85 null 20.02/7.79 br %86, %87, %97 20.02/7.79 87: 20.02/7.79 %88 = load %p 20.02/7.79 %89 = getelementptr %88, 0, 0 20.02/7.79 %90 = load %89 20.02/7.79 %91 = icmp ne %90 2 20.02/7.79 br %91, %92, %93 20.02/7.79 92: 20.02/7.79 br %98 20.02/7.79 93: 20.02/7.79 %94 = load %p 20.02/7.79 %95 = getelementptr %94, 0, 1 20.02/7.79 %96 = load %95 20.02/7.79 store %96, %p 20.02/7.79 br %84 20.02/7.79 97: 20.02/7.79 store 0, %1 20.02/7.79 br %99 20.02/7.79 98: 20.02/7.79 Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn 20.02/7.79 unreachable 20.02/7.79 99: 20.02/7.79 %100 = load %1 20.02/7.79 ret %100 20.02/7.79 20.02/7.79 20.02/7.79 Analyze Termination of all function calls matching the pattern: 20.02/7.79 main() 20.07/10.16 EOF