33.95/12.73 MAYBE 34.14/12.74 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 34.14/12.74 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 34.14/12.74 34.14/12.74 34.14/12.74 Termination of the given C Problem could not be shown: 34.14/12.74 34.14/12.74 (0) C Problem 34.14/12.74 (1) CToLLVMProof [EQUIVALENT, 167 ms] 34.14/12.74 (2) LLVM problem 34.14/12.74 34.14/12.74 34.14/12.74 ---------------------------------------- 34.14/12.74 34.14/12.74 (0) 34.14/12.74 Obligation: 34.14/12.74 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 34.14/12.74 ---------------------------------------- 34.14/12.74 34.14/12.74 (1) CToLLVMProof (EQUIVALENT) 34.14/12.74 Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. 34.14/12.74 ---------------------------------------- 34.14/12.74 34.14/12.74 (2) 34.14/12.74 Obligation: 34.14/12.74 LLVM Problem 34.14/12.74 34.14/12.74 Aliases: 34.14/12.74 34.14/12.74 Data layout: 34.14/12.74 34.14/12.74 "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" 34.14/12.74 34.14/12.74 Machine: 34.14/12.74 34.14/12.74 "x86_64-pc-linux-gnu" 34.14/12.74 34.14/12.74 Type definitions: 34.14/12.74 34.14/12.74 struct.list --> BasicStructureType(elementType: *struct.node, elementType: *struct.list) 34.14/12.74 34.14/12.74 struct.node --> BasicStructureType(elementType: i32, elementType: *struct.node) 34.14/12.74 34.14/12.74 struct.iterator --> BasicStructureType(elementType: *struct.list, elementType: *struct.node) 34.14/12.74 34.14/12.74 Global variables: 34.14/12.74 34.14/12.74 Function declarations and definitions: 34.14/12.74 34.14/12.74 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 34.14/12.74 *BasicFunctionTypename: "malloc" returnParam: *i8 noalias parameters: (i64) variableLength: false visibilityType: DEFAULT callingConvention: ccc 34.14/12.74 *BasicFunctionTypename: "abort" returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 34.14/12.74 *BasicFunctionTypename: "free" returnParam: BasicVoidType parameters: (*i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 34.14/12.74 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 34.14/12.74 0: 34.14/12.74 %1 = alloca i32, align 4 34.14/12.74 %data = alloca *BasicTypeName typeName: struct.listBasicStructureType(elementType: *struct.node, elementType: *struct.list), align 8 34.14/12.74 %node = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %item = alloca *BasicTypeName typeName: struct.listBasicStructureType(elementType: *struct.node, elementType: *struct.list), align 8 34.14/12.74 %iter = alloca BasicTypeName typeName: struct.iteratorBasicStructureType(elementType: *struct.list, elementType: *struct.node), align 8 34.14/12.74 %list = alloca *BasicTypeName typeName: struct.listBasicStructureType(elementType: *struct.node, elementType: *struct.list), align 8 34.14/12.74 %node1 = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %current = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %current2 = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %list3 = alloca *BasicTypeName typeName: struct.listBasicStructureType(elementType: *struct.node, elementType: *struct.list), align 8 34.14/12.74 %dst = alloca *BasicTypeName typeName: struct.listBasicStructureType(elementType: *struct.node, elementType: *struct.list), align 8 34.14/12.74 %next = alloca *BasicTypeName typeName: struct.listBasicStructureType(elementType: *struct.node, elementType: *struct.list), align 8 34.14/12.74 %dst4 = alloca **BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %sub1 = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %sub2 = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %pdst = alloca ***BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %pdata = alloca **BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %node5 = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %iter6 = alloca BasicTypeName typeName: struct.iteratorBasicStructureType(elementType: *struct.list, elementType: *struct.node), align 8 34.14/12.74 %list7 = alloca *BasicTypeName typeName: struct.listBasicStructureType(elementType: *struct.node, elementType: *struct.list), align 8 34.14/12.74 %node8 = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %current9 = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %current10 = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %next11 = alloca *BasicTypeName typeName: struct.listBasicStructureType(elementType: *struct.node, elementType: *struct.list), align 8 34.14/12.74 %node12 = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 %snext = alloca *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node), align 8 34.14/12.74 store 0, %1 34.14/12.74 store null, %data 34.14/12.74 br %2 34.14/12.74 2: 34.14/12.74 %3 = call i32 @__VERIFIER_nondet_int() 34.14/12.74 %4 = icmp ne %3 0 34.14/12.74 br %4, %5, %30 34.14/12.74 5: 34.14/12.74 %6 = call noalias *i8 @malloc(i64 16) nounwind 34.14/12.74 %7 = bitcast *i8 %6 to *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node) 34.14/12.74 store %7, %node 34.14/12.74 %8 = load %node 34.14/12.74 %9 = icmp ne %8 null 34.14/12.74 br %9, %11, %10 34.14/12.74 10: 34.14/12.74 Unnamed Call-Instruction = call BasicVoidType @abort() noreturn nounwind 34.14/12.74 unreachable 34.14/12.74 11: 34.14/12.74 %12 = load %node 34.14/12.74 %13 = getelementptr %12, 0, 1 34.14/12.74 store null, %13 34.14/12.74 %14 = call i32 @__VERIFIER_nondet_int() 34.14/12.74 %15 = load %node 34.14/12.74 %16 = getelementptr %15, 0, 0 34.14/12.74 store %14, %16 34.14/12.74 %17 = call noalias *i8 @malloc(i64 16) nounwind 34.14/12.74 %18 = bitcast *i8 %17 to *BasicTypeName typeName: struct.listBasicStructureType(elementType: *struct.node, elementType: *struct.list) 34.14/12.74 store %18, %item 34.14/12.74 %19 = load %item 34.14/12.74 %20 = icmp ne %19 null 34.14/12.74 br %20, %22, %21 34.14/12.74 21: 34.14/12.74 Unnamed Call-Instruction = call BasicVoidType @abort() noreturn nounwind 34.14/12.74 unreachable 34.14/12.74 22: 34.14/12.74 %23 = load %node 34.14/12.74 %24 = load %item 34.14/12.74 %25 = getelementptr %24, 0, 0 34.14/12.74 store %23, %25 34.14/12.74 %26 = load %data 34.14/12.74 %27 = load %item 34.14/12.74 %28 = getelementptr %27, 0, 1 34.14/12.74 store %26, %28 34.14/12.74 %29 = load %item 34.14/12.74 store %29, %data 34.14/12.74 br %2 34.14/12.74 30: 34.14/12.74 %31 = load %data 34.14/12.74 store %31, %list 34.14/12.74 %32 = load %list 34.14/12.74 %33 = getelementptr %iter, 0, 0 34.14/12.74 store %32, %33 34.14/12.74 %34 = icmp ne %32 null 34.14/12.74 br %34, %35, %40 34.14/12.74 35: 34.14/12.74 %36 = load %list 34.14/12.74 %37 = getelementptr %36, 0, 0 34.14/12.74 %38 = load %37 34.14/12.74 %39 = getelementptr %iter, 0, 1 34.14/12.74 store %38, %39 34.14/12.74 br %40 34.14/12.74 40: 34.14/12.74 %41 = getelementptr %iter, 0, 0 34.14/12.74 %42 = load %41 34.14/12.74 %43 = icmp ne %42 null 34.14/12.74 br %43, %45, %44 34.14/12.74 44: 34.14/12.74 store null, %node1 34.14/12.74 br %71 34.14/12.74 45: 34.14/12.74 %46 = getelementptr %iter, 0, 1 34.14/12.74 %47 = load %46 34.14/12.74 store %47, %current 34.14/12.74 %48 = load %current 34.14/12.74 %49 = getelementptr %48, 0, 1 34.14/12.74 %50 = load %49 34.14/12.74 %51 = getelementptr %iter, 0, 1 34.14/12.74 store %50, %51 34.14/12.74 %52 = icmp ne %50 null 34.14/12.74 br %52, %53, %55 34.14/12.74 53: 34.14/12.74 %54 = load %current 34.14/12.74 store %54, %node1 34.14/12.74 br %70 34.14/12.74 55: 34.14/12.74 %56 = getelementptr %iter, 0, 0 34.14/12.74 %57 = load %56 34.14/12.74 %58 = getelementptr %57, 0, 1 34.14/12.74 %59 = load %58 34.14/12.74 %60 = getelementptr %iter, 0, 0 34.14/12.74 store %59, %60 34.14/12.74 %61 = icmp ne %59 null 34.14/12.74 br %61, %62, %68 34.14/12.74 62: 34.14/12.74 %63 = getelementptr %iter, 0, 0 34.14/12.74 %64 = load %63 34.14/12.74 %65 = getelementptr %64, 0, 0 34.14/12.74 %66 = load %65 34.14/12.74 %67 = getelementptr %iter, 0, 1 34.14/12.74 store %66, %67 34.14/12.74 br %68 34.14/12.74 68: 34.14/12.74 %69 = load %current 34.14/12.74 store %69, %node1 34.14/12.74 br %70 34.14/12.74 70: 34.14/12.74 br %71 34.14/12.74 71: 34.14/12.74 br %72 34.14/12.74 72: 34.14/12.74 %73 = load %node1 34.14/12.74 %74 = icmp ne %73 null 34.14/12.74 br %74, %75, %107 34.14/12.74 75: 34.14/12.74 %76 = getelementptr %iter, 0, 0 34.14/12.74 %77 = load %76 34.14/12.74 %78 = icmp ne %77 null 34.14/12.74 br %78, %80, %79 34.14/12.74 79: 34.14/12.74 store null, %node1 34.14/12.74 br %106 34.14/12.74 80: 34.14/12.74 %81 = getelementptr %iter, 0, 1 34.14/12.74 %82 = load %81 34.14/12.74 store %82, %current2 34.14/12.74 %83 = load %current2 34.14/12.74 %84 = getelementptr %83, 0, 1 34.14/12.74 %85 = load %84 34.14/12.74 %86 = getelementptr %iter, 0, 1 34.14/12.74 store %85, %86 34.14/12.74 %87 = icmp ne %85 null 34.14/12.74 br %87, %88, %90 34.14/12.74 88: 34.14/12.74 %89 = load %current2 34.14/12.74 store %89, %node1 34.14/12.74 br %105 34.14/12.74 90: 34.14/12.74 %91 = getelementptr %iter, 0, 0 34.14/12.74 %92 = load %91 34.14/12.74 %93 = getelementptr %92, 0, 1 34.14/12.74 %94 = load %93 34.14/12.74 %95 = getelementptr %iter, 0, 0 34.14/12.74 store %94, %95 34.14/12.74 %96 = icmp ne %94 null 34.14/12.74 br %96, %97, %103 34.14/12.74 97: 34.14/12.74 %98 = getelementptr %iter, 0, 0 34.14/12.74 %99 = load %98 34.14/12.74 %100 = getelementptr %99, 0, 0 34.14/12.74 %101 = load %100 34.14/12.74 %102 = getelementptr %iter, 0, 1 34.14/12.74 store %101, %102 34.14/12.74 br %103 34.14/12.74 103: 34.14/12.74 %104 = load %current2 34.14/12.74 store %104, %node1 34.14/12.74 br %105 34.14/12.74 105: 34.14/12.74 br %106 34.14/12.74 106: 34.14/12.74 br %72 34.14/12.74 107: 34.14/12.74 %108 = load %data 34.14/12.74 store %108, %list3 34.14/12.74 br %109 34.14/12.74 109: 34.14/12.74 %110 = load %list3 34.14/12.74 %111 = icmp ne %110 null 34.14/12.74 br %111, %112, %117 34.14/12.74 112: 34.14/12.74 %113 = load %list3 34.14/12.74 %114 = getelementptr %113, 0, 1 34.14/12.74 %115 = load %114 34.14/12.74 %116 = icmp ne %115 null 34.14/12.74 br %117 34.14/12.74 117: 34.14/12.74 %118 = phi [0, %109], [%116, %112] 34.14/12.74 br %118, %119, %189 34.14/12.74 119: 34.14/12.74 store null, %dst 34.14/12.74 br %120 34.14/12.74 120: 34.14/12.74 %121 = load %list3 34.14/12.74 %122 = icmp ne %121 null 34.14/12.74 br %122, %123, %187 34.14/12.74 123: 34.14/12.74 %124 = load %list3 34.14/12.74 %125 = getelementptr %124, 0, 1 34.14/12.74 %126 = load %125 34.14/12.74 store %126, %next 34.14/12.74 %127 = load %next 34.14/12.74 %128 = icmp ne %127 null 34.14/12.74 br %128, %134, %129 34.14/12.74 129: 34.14/12.74 %130 = load %dst 34.14/12.74 %131 = load %list3 34.14/12.74 %132 = getelementptr %131, 0, 1 34.14/12.74 store %130, %132 34.14/12.74 %133 = load %list3 34.14/12.74 store %133, %dst 34.14/12.74 br %187 34.14/12.74 134: 34.14/12.74 %135 = load %list3 34.14/12.74 %136 = getelementptr %135, 0, 0 34.14/12.74 store %136, %dst4 34.14/12.74 %137 = load %list3 34.14/12.74 %138 = getelementptr %137, 0, 0 34.14/12.74 %139 = load %138 34.14/12.74 store %139, %sub1 34.14/12.74 %140 = load %next 34.14/12.74 %141 = getelementptr %140, 0, 0 34.14/12.74 %142 = load %141 34.14/12.74 store %142, %sub2 34.14/12.74 br %143 34.14/12.74 143: 34.14/12.74 %144 = load %sub1 34.14/12.74 %145 = icmp ne %144 null 34.14/12.74 br %145, %149, %146 34.14/12.74 146: 34.14/12.74 %147 = load %sub2 34.14/12.74 %148 = icmp ne %147 null 34.14/12.74 br %149 34.14/12.74 149: 34.14/12.74 %150 = phi [1, %143], [%148, %146] 34.14/12.74 br %150, %151, %177 34.14/12.74 151: 34.14/12.74 store %dst4, %pdst 34.14/12.74 %152 = load %sub2 34.14/12.74 %153 = icmp ne %152 null 34.14/12.74 br %153, %154, %160 34.14/12.74 154: 34.14/12.74 %155 = load %sub1 34.14/12.74 %156 = icmp ne %155 null 34.14/12.74 br %156, %157, %161 34.14/12.74 157: 34.14/12.74 %158 = call i32 @__VERIFIER_nondet_int() 34.14/12.74 %159 = icmp ne %158 0 34.14/12.74 br %159, %160, %161 34.14/12.74 160: 34.14/12.74 store %sub1, %pdata 34.14/12.74 br %162 34.14/12.74 161: 34.14/12.74 store %sub2, %pdata 34.14/12.74 br %162 34.14/12.74 162: 34.14/12.74 %163 = load %pdata 34.14/12.74 %164 = load %163 34.14/12.74 store %164, %node5 34.14/12.75 %165 = load %node5 34.14/12.75 %166 = getelementptr %165, 0, 1 34.14/12.75 %167 = load %166 34.14/12.75 %168 = load %pdata 34.14/12.75 store %167, %168 34.14/12.75 %169 = load %node5 34.14/12.75 %170 = getelementptr %169, 0, 1 34.14/12.75 store null, %170 34.14/12.75 %171 = load %node5 34.14/12.75 %172 = load %pdst 34.14/12.75 %173 = load %172 34.14/12.75 store %171, %173 34.14/12.75 %174 = load %node5 34.14/12.75 %175 = getelementptr %174, 0, 1 34.14/12.75 %176 = load %pdst 34.14/12.75 store %175, %176 34.14/12.75 br %143 34.14/12.75 177: 34.14/12.75 %178 = load %dst 34.14/12.75 %179 = load %list3 34.14/12.75 %180 = getelementptr %179, 0, 1 34.14/12.75 store %178, %180 34.14/12.75 %181 = load %list3 34.14/12.75 store %181, %dst 34.14/12.75 %182 = load %next 34.14/12.75 %183 = getelementptr %182, 0, 1 34.14/12.75 %184 = load %183 34.14/12.75 store %184, %list3 34.14/12.75 %185 = load %next 34.14/12.75 %186 = bitcast *BasicTypeName typeName: struct.listBasicStructureType(elementType: *struct.node, elementType: *struct.list) %185 to *i8 34.14/12.75 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %186) nounwind 34.14/12.75 br %120 34.14/12.75 187: 34.14/12.75 %188 = load %dst 34.14/12.75 store %188, %list3 34.14/12.75 br %109 34.14/12.75 189: 34.14/12.75 %190 = load %list3 34.14/12.75 store %190, %data 34.14/12.75 %191 = load %data 34.14/12.75 store %191, %list7 34.14/12.75 %192 = load %list7 34.14/12.75 %193 = getelementptr %iter6, 0, 0 34.14/12.75 store %192, %193 34.14/12.75 %194 = icmp ne %192 null 34.14/12.75 br %194, %195, %200 34.14/12.75 195: 34.14/12.75 %196 = load %list7 34.14/12.75 %197 = getelementptr %196, 0, 0 34.14/12.75 %198 = load %197 34.14/12.75 %199 = getelementptr %iter6, 0, 1 34.14/12.75 store %198, %199 34.14/12.75 br %200 34.14/12.75 200: 34.14/12.75 %201 = getelementptr %iter6, 0, 0 34.14/12.75 %202 = load %201 34.14/12.75 %203 = icmp ne %202 null 34.14/12.75 br %203, %205, %204 34.14/12.75 204: 34.14/12.75 store null, %node8 34.14/12.75 br %231 34.14/12.75 205: 34.14/12.75 %206 = getelementptr %iter6, 0, 1 34.14/12.75 %207 = load %206 34.14/12.75 store %207, %current9 34.14/12.75 %208 = load %current9 34.14/12.75 %209 = getelementptr %208, 0, 1 34.14/12.75 %210 = load %209 34.14/12.75 %211 = getelementptr %iter6, 0, 1 34.14/12.75 store %210, %211 34.14/12.75 %212 = icmp ne %210 null 34.14/12.75 br %212, %213, %215 34.14/12.75 213: 34.14/12.75 %214 = load %current9 34.14/12.75 store %214, %node8 34.14/12.75 br %230 34.14/12.75 215: 34.14/12.75 %216 = getelementptr %iter6, 0, 0 34.14/12.75 %217 = load %216 34.14/12.75 %218 = getelementptr %217, 0, 1 34.14/12.75 %219 = load %218 34.14/12.75 %220 = getelementptr %iter6, 0, 0 34.14/12.75 store %219, %220 34.14/12.75 %221 = icmp ne %219 null 34.14/12.75 br %221, %222, %228 34.14/12.75 222: 34.14/12.75 %223 = getelementptr %iter6, 0, 0 34.14/12.75 %224 = load %223 34.14/12.75 %225 = getelementptr %224, 0, 0 34.14/12.75 %226 = load %225 34.14/12.75 %227 = getelementptr %iter6, 0, 1 34.14/12.75 store %226, %227 34.14/12.75 br %228 34.14/12.75 228: 34.14/12.75 %229 = load %current9 34.14/12.75 store %229, %node8 34.14/12.75 br %230 34.14/12.75 230: 34.14/12.75 br %231 34.14/12.75 231: 34.14/12.75 br %232 34.14/12.75 232: 34.14/12.75 %233 = load %node8 34.14/12.75 %234 = icmp ne %233 null 34.14/12.75 br %234, %235, %267 34.14/12.75 235: 34.14/12.75 %236 = getelementptr %iter6, 0, 0 34.14/12.75 %237 = load %236 34.14/12.75 %238 = icmp ne %237 null 34.14/12.75 br %238, %240, %239 34.14/12.75 239: 34.14/12.75 store null, %node8 34.14/12.75 br %266 34.14/12.75 240: 34.14/12.75 %241 = getelementptr %iter6, 0, 1 34.14/12.75 %242 = load %241 34.14/12.75 store %242, %current10 34.14/12.75 %243 = load %current10 34.14/12.75 %244 = getelementptr %243, 0, 1 34.14/12.75 %245 = load %244 34.14/12.75 %246 = getelementptr %iter6, 0, 1 34.14/12.75 store %245, %246 34.14/12.75 %247 = icmp ne %245 null 34.14/12.75 br %247, %248, %250 34.14/12.75 248: 34.14/12.75 %249 = load %current10 34.14/12.75 store %249, %node8 34.14/12.75 br %265 34.14/12.75 250: 34.14/12.75 %251 = getelementptr %iter6, 0, 0 34.14/12.75 %252 = load %251 34.14/12.75 %253 = getelementptr %252, 0, 1 34.14/12.75 %254 = load %253 34.14/12.75 %255 = getelementptr %iter6, 0, 0 34.14/12.75 store %254, %255 34.14/12.75 %256 = icmp ne %254 null 34.14/12.75 br %256, %257, %263 34.14/12.75 257: 34.14/12.75 %258 = getelementptr %iter6, 0, 0 34.14/12.75 %259 = load %258 34.14/12.75 %260 = getelementptr %259, 0, 0 34.14/12.75 %261 = load %260 34.14/12.75 %262 = getelementptr %iter6, 0, 1 34.14/12.75 store %261, %262 34.14/12.75 br %263 34.14/12.75 263: 34.14/12.75 %264 = load %current10 34.14/12.75 store %264, %node8 34.14/12.75 br %265 34.14/12.75 265: 34.14/12.75 br %266 34.14/12.75 266: 34.14/12.75 br %232 34.14/12.75 267: 34.14/12.75 br %268 34.14/12.75 268: 34.14/12.75 %269 = load %data 34.14/12.75 %270 = icmp ne %269 null 34.14/12.75 br %270, %271, %292 34.14/12.75 271: 34.14/12.75 %272 = load %data 34.14/12.75 %273 = getelementptr %272, 0, 1 34.14/12.75 %274 = load %273 34.14/12.75 store %274, %next11 34.14/12.75 %275 = load %data 34.14/12.75 %276 = getelementptr %275, 0, 0 34.14/12.75 %277 = load %276 34.14/12.75 store %277, %node12 34.14/12.75 br %278 34.14/12.75 278: 34.14/12.75 %279 = load %node12 34.14/12.75 %280 = icmp ne %279 null 34.14/12.75 br %280, %281, %288 34.14/12.75 281: 34.14/12.75 %282 = load %node12 34.14/12.75 %283 = getelementptr %282, 0, 1 34.14/12.75 %284 = load %283 34.14/12.75 store %284, %snext 34.14/12.75 %285 = load %node12 34.14/12.75 %286 = bitcast *BasicTypeName typeName: struct.nodeBasicStructureType(elementType: i32, elementType: *struct.node) %285 to *i8 34.14/12.75 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %286) nounwind 34.14/12.75 %287 = load %snext 34.14/12.75 store %287, %node12 34.14/12.75 br %278 34.14/12.75 288: 34.14/12.75 %289 = load %data 34.14/12.75 %290 = bitcast *BasicTypeName typeName: struct.listBasicStructureType(elementType: *struct.node, elementType: *struct.list) %289 to *i8 34.14/12.75 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %290) nounwind 34.14/12.75 %291 = load %next11 34.14/12.75 store %291, %data 34.14/12.75 br %268 34.14/12.75 292: 34.14/12.75 ret 0 34.14/12.75 34.14/12.75 34.14/12.75 Analyze Termination of all function calls matching the pattern: 34.14/12.75 main() 34.18/12.81 EOF