/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, 172 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.TLItem --> BasicStructureType(elementType: *struct.TLItem, elementType: *struct.DItem) struct.DItem --> BasicStructureType(elementType: *struct.DItem, elementType: i32) Global variables: 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: "abort" returnParam: BasicVoidType parameters: () variableLength: false 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 %data = alloca *BasicTypeName typeName: struct.TLItemBasicStructureType(elementType: *struct.TLItem, elementType: *struct.DItem), align 8 %item = alloca *BasicTypeName typeName: struct.DItemBasicStructureType(elementType: *struct.DItem, elementType: i32), align 8 %item2 = alloca *BasicTypeName typeName: struct.DItemBasicStructureType(elementType: *struct.DItem, elementType: i32), align 8 %lItem = alloca *BasicTypeName typeName: struct.TLItemBasicStructureType(elementType: *struct.TLItem, elementType: *struct.DItem), align 8 %c1 = alloca i32, align 4 %dst = alloca **BasicTypeName typeName: struct.DItemBasicStructureType(elementType: *struct.DItem, elementType: i32), align 8 store 0, %1 store null, %data store 0, %c1 br %2 2: %3 = load %c1 %4 = icmp slt %3 5 br %4, %5, %8 5: %6 = call i32 @__VERIFIER_nondet_int() %7 = icmp ne %6 0 br %8 8: %9 = phi [0, %2], [%7, %5] br %9, %10, %66 10: %11 = load %c1 %12 = add %11 1 store %12, %c1 %13 = call noalias *i8 @malloc(i64 16) nounwind %14 = bitcast *i8 %13 to *BasicTypeName typeName: struct.DItemBasicStructureType(elementType: *struct.DItem, elementType: i32) store %14, %item %15 = load %item %16 = icmp ne %15 null br %16, %18, %17 17: Unnamed Call-Instruction = call BasicVoidType @abort() noreturn nounwind unreachable 18: %19 = load %item %20 = getelementptr %19, 0, 0 store null, %20 %21 = load %c1 %22 = icmp slt %21 2 br %22, %23, %26 23: %24 = load %item %25 = getelementptr %24, 0, 1 store 2, %25 br %26 26: %27 = load %c1 %28 = icmp slt %27 4 br %28, %29, %34 29: %30 = load %c1 %31 = add %30 2 %32 = load %item %33 = getelementptr %32, 0, 1 store %31, %33 br %34 34: %35 = load %c1 %36 = icmp slt %35 6 br %36, %37, %43 37: %38 = load %c1 %39 = mul 2 %38 %40 = add %39 4 %41 = load %item %42 = getelementptr %41, 0, 1 store %40, %42 br %43 43: %44 = call noalias *i8 @malloc(i64 16) nounwind %45 = bitcast *i8 %44 to *BasicTypeName typeName: struct.TLItemBasicStructureType(elementType: *struct.TLItem, elementType: *struct.DItem) store %45, %lItem %46 = load %data %47 = icmp ne %46 null br %47, %48, %57 48: %49 = load %data %50 = getelementptr %49, 0, 0 %51 = load %50 %52 = load %lItem %53 = getelementptr %52, 0, 0 store %51, %53 %54 = load %lItem %55 = load %data %56 = getelementptr %55, 0, 0 store %54, %56 br %62 57: %58 = load %lItem %59 = load %lItem %60 = getelementptr %59, 0, 0 store %58, %60 %61 = load %lItem store %61, %data br %62 62: %63 = load %item %64 = load %lItem %65 = getelementptr %64, 0, 1 store %63, %65 store null, %item store null, %lItem br %2 66: %67 = load %data %68 = icmp ne %67 null br %68, %70, %69 69: store 0, %1 br %175 70: br %71 71: %72 = load %data %73 = getelementptr %72, 0, 0 %74 = load %73 %75 = load %data %76 = icmp ne %74 %75 br %76, %77, %147 77: %78 = load %data %79 = getelementptr %78, 0, 1 %80 = load %79 store %80, %item %81 = load %data %82 = getelementptr %81, 0, 0 %83 = load %82 %84 = getelementptr %83, 0, 1 %85 = load %84 store %85, %item2 %86 = load %data %87 = getelementptr %86, 0, 0 %88 = load %87 store %88, %lItem %89 = load %lItem %90 = getelementptr %89, 0, 0 %91 = load %90 %92 = load %data %93 = getelementptr %92, 0, 0 store %91, %93 %94 = load %lItem %95 = bitcast *BasicTypeName typeName: struct.TLItemBasicStructureType(elementType: *struct.TLItem, elementType: *struct.DItem) %94 to *i8 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %95) nounwind %96 = load %data %97 = getelementptr %96, 0, 1 store %97, %dst br %98 98: %99 = load %item %100 = icmp ne %99 null br %100, %101, %104 101: %102 = load %item2 %103 = icmp ne %102 null br %104 104: %105 = phi [0, %98], [%103, %101] br %105, %106, %130 106: %107 = load %item %108 = getelementptr %107, 0, 1 %109 = load %108 %110 = load %item2 %111 = getelementptr %110, 0, 1 %112 = load %111 %113 = icmp sgt %109 %112 br %113, %114, %120 114: %115 = load %item %116 = load %dst store %115, %116 %117 = load %item %118 = getelementptr %117, 0, 0 %119 = load %118 store %119, %item br %126 120: %121 = load %item2 %122 = load %dst store %121, %122 %123 = load %item2 %124 = getelementptr %123, 0, 0 %125 = load %124 store %125, %item2 br %126 126: %127 = load %dst %128 = load %127 %129 = getelementptr %128, 0, 0 store %129, %dst br %98 130: %131 = load %item %132 = icmp ne %131 null br %132, %133, %136 133: %134 = load %item %135 = load %dst store %134, %135 store null, %item br %143 136: %137 = load %item2 %138 = icmp ne %137 null br %138, %139, %142 139: %140 = load %item2 %141 = load %dst store %140, %141 store null, %item2 br %142 142: br %143 143: store null, %dst %144 = load %data %145 = getelementptr %144, 0, 0 %146 = load %145 store %146, %data br %71 147: %148 = load %data %149 = getelementptr %148, 0, 1 %150 = load %149 store %150, %item %151 = load %data %152 = bitcast *BasicTypeName typeName: struct.TLItemBasicStructureType(elementType: *struct.TLItem, elementType: *struct.DItem) %151 to *i8 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %152) nounwind br %153 153: %154 = load %item %155 = icmp ne %154 null br %155, %156, %174 156: %157 = load %item store %157, %item2 %158 = load %item %159 = getelementptr %158, 0, 0 %160 = load %159 store %160, %item %161 = load %item2 %162 = getelementptr %161, 0, 1 %163 = load %162 %164 = icmp sgt %163 1 br %164, %165, %173 165: %166 = load %item2 %167 = getelementptr %166, 0, 1 %168 = load %167 %169 = icmp slt %168 15 br %169, %170, %173 170: %171 = load %item2 %172 = bitcast *BasicTypeName typeName: struct.DItemBasicStructureType(elementType: *struct.DItem, elementType: i32) %171 to *i8 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %172) nounwind br %173 173: br %153 174: store 0, %1 br %175 175: %176 = load %1 ret %176 Analyze Termination of all function calls matching the pattern: main()