/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/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, 172 ms] (2) LLVM problem ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox2/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.TreeNode --> BasicStructureType(elementType: *struct.TreeNode, elementType: *struct.TreeNode) struct.StackItem --> BasicStructureType(elementType: *struct.StackItem, elementType: *struct.TreeNode) 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: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %root = alloca *BasicTypeName typeName: struct.TreeNodeBasicStructureType(elementType: *struct.TreeNode, elementType: *struct.TreeNode), align 8 %n = alloca *BasicTypeName typeName: struct.TreeNodeBasicStructureType(elementType: *struct.TreeNode, elementType: *struct.TreeNode), align 8 %s = alloca *BasicTypeName typeName: struct.StackItemBasicStructureType(elementType: *struct.StackItem, elementType: *struct.TreeNode), align 8 %st = alloca *BasicTypeName typeName: struct.StackItemBasicStructureType(elementType: *struct.StackItem, elementType: *struct.TreeNode), align 8 store 0, %1 %2 = call noalias *i8 @malloc(i64 16) nounwind %3 = bitcast *i8 %2 to *BasicTypeName typeName: struct.TreeNodeBasicStructureType(elementType: *struct.TreeNode, elementType: *struct.TreeNode) store %3, %root %4 = load %root %5 = getelementptr %4, 0, 0 store null, %5 %6 = load %root %7 = getelementptr %6, 0, 1 store null, %7 br %8 8: %9 = call i32 (...)* @__VERIFIER_nondet_int() %10 = icmp ne %9 0 br %10, %11, %80 11: %12 = load %root store %12, %n br %13 13: %14 = load %n %15 = getelementptr %14, 0, 0 %16 = load %15 %17 = icmp ne %16 null br %17, %18, %23 18: %19 = load %n %20 = getelementptr %19, 0, 1 %21 = load %20 %22 = icmp ne %21 null br %23 23: %24 = phi [0, %13], [%22, %18] br %24, %25, %37 25: %26 = call i32 (...)* @__VERIFIER_nondet_int() %27 = icmp ne %26 0 br %27, %28, %32 28: %29 = load %n %30 = getelementptr %29, 0, 0 %31 = load %30 store %31, %n br %36 32: %33 = load %n %34 = getelementptr %33, 0, 1 %35 = load %34 store %35, %n br %36 36: br %13 37: %38 = load %n %39 = getelementptr %38, 0, 0 %40 = load %39 %41 = icmp ne %40 null br %41, %58, %42 42: %43 = call i32 (...)* @__VERIFIER_nondet_int() %44 = icmp ne %43 0 br %44, %45, %58 45: %46 = call noalias *i8 @malloc(i64 16) nounwind %47 = bitcast *i8 %46 to *BasicTypeName typeName: struct.TreeNodeBasicStructureType(elementType: *struct.TreeNode, elementType: *struct.TreeNode) %48 = load %n %49 = getelementptr %48, 0, 0 store %47, %49 %50 = load %n %51 = getelementptr %50, 0, 0 %52 = load %51 %53 = getelementptr %52, 0, 0 store null, %53 %54 = load %n %55 = getelementptr %54, 0, 0 %56 = load %55 %57 = getelementptr %56, 0, 1 store null, %57 br %58 58: %59 = load %n %60 = getelementptr %59, 0, 1 %61 = load %60 %62 = icmp ne %61 null br %62, %79, %63 63: %64 = call i32 (...)* @__VERIFIER_nondet_int() %65 = icmp ne %64 0 br %65, %66, %79 66: %67 = call noalias *i8 @malloc(i64 16) nounwind %68 = bitcast *i8 %67 to *BasicTypeName typeName: struct.TreeNodeBasicStructureType(elementType: *struct.TreeNode, elementType: *struct.TreeNode) %69 = load %n %70 = getelementptr %69, 0, 1 store %68, %70 %71 = load %n %72 = getelementptr %71, 0, 1 %73 = load %72 %74 = getelementptr %73, 0, 0 store null, %74 %75 = load %n %76 = getelementptr %75, 0, 1 %77 = load %76 %78 = getelementptr %77, 0, 1 store null, %78 br %79 79: br %8 80: store null, %n %81 = call noalias *i8 @malloc(i64 16) nounwind %82 = bitcast *i8 %81 to *BasicTypeName typeName: struct.StackItemBasicStructureType(elementType: *struct.StackItem, elementType: *struct.TreeNode) store %82, %s %83 = load %s %84 = getelementptr %83, 0, 0 store null, %84 %85 = load %root %86 = load %s %87 = getelementptr %86, 0, 1 store %85, %87 br %88 88: %89 = load %s %90 = icmp ne %89 null br %90, %91, %137 91: %92 = load %s store %92, %st %93 = load %s %94 = getelementptr %93, 0, 0 %95 = load %94 store %95, %s %96 = load %st %97 = getelementptr %96, 0, 1 %98 = load %97 store %98, %n %99 = load %st %100 = bitcast *BasicTypeName typeName: struct.StackItemBasicStructureType(elementType: *struct.StackItem, elementType: *struct.TreeNode) %99 to *i8 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %100) nounwind %101 = load %n %102 = getelementptr %101, 0, 0 %103 = load %102 %104 = icmp ne %103 null br %104, %105, %117 105: %106 = call noalias *i8 @malloc(i64 16) nounwind %107 = bitcast *i8 %106 to *BasicTypeName typeName: struct.StackItemBasicStructureType(elementType: *struct.StackItem, elementType: *struct.TreeNode) store %107, %st %108 = load %s %109 = load %st %110 = getelementptr %109, 0, 0 store %108, %110 %111 = load %n %112 = getelementptr %111, 0, 0 %113 = load %112 %114 = load %st %115 = getelementptr %114, 0, 1 store %113, %115 %116 = load %st store %116, %s br %117 117: %118 = load %n %119 = getelementptr %118, 0, 1 %120 = load %119 %121 = icmp ne %120 null br %121, %122, %134 122: %123 = call noalias *i8 @malloc(i64 16) nounwind %124 = bitcast *i8 %123 to *BasicTypeName typeName: struct.StackItemBasicStructureType(elementType: *struct.StackItem, elementType: *struct.TreeNode) store %124, %st %125 = load %s %126 = load %st %127 = getelementptr %126, 0, 0 store %125, %127 %128 = load %n %129 = getelementptr %128, 0, 1 %130 = load %129 %131 = load %st %132 = getelementptr %131, 0, 1 store %130, %132 %133 = load %st store %133, %s br %134 134: %135 = load %n %136 = bitcast *BasicTypeName typeName: struct.TreeNodeBasicStructureType(elementType: *struct.TreeNode, elementType: *struct.TreeNode) %135 to *i8 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %136) nounwind br %88 137: ret 0 Analyze Termination of all function calls matching the pattern: main()