4.34/1.97 MAYBE 4.56/1.98 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 4.56/1.98 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.56/1.98 4.56/1.98 4.56/1.98 Termination of the given C Problem could not be shown: 4.56/1.98 4.56/1.98 (0) C Problem 4.56/1.98 (1) CToLLVMProof [EQUIVALENT, 160 ms] 4.56/1.98 (2) LLVM problem 4.56/1.98 4.56/1.98 4.56/1.98 ---------------------------------------- 4.56/1.98 4.56/1.98 (0) 4.56/1.98 Obligation: 4.56/1.98 c file /export/starexec/sandbox/benchmark/theBenchmark.c 4.56/1.98 ---------------------------------------- 4.56/1.98 4.56/1.98 (1) CToLLVMProof (EQUIVALENT) 4.56/1.98 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 4.56/1.98 ---------------------------------------- 4.56/1.98 4.56/1.98 (2) 4.56/1.98 Obligation: 4.56/1.98 LLVM Problem 4.56/1.98 4.56/1.98 Aliases: 4.56/1.98 4.56/1.98 Data layout: 4.56/1.98 4.56/1.98 "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" 4.56/1.98 4.56/1.98 Machine: 4.56/1.98 4.56/1.98 "x86_64-pc-linux-gnu" 4.56/1.98 4.56/1.98 Type definitions: 4.56/1.98 4.56/1.98 struct.slave_item --> BasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item) 4.56/1.98 4.56/1.98 struct.master_item --> BasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) 4.56/1.98 4.56/1.98 Global variables: 4.56/1.98 4.56/1.98 Function declarations and definitions: 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "malloc" returnParam: *i8 noalias parameters: (i64) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 *BasicFunctionTypename: "abort" returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 *BasicFunctionTypename: "free" returnParam: BasicVoidType parameters: (*i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 *BasicFunctionTypename: "alloc_or_die_slave" linkageType: EXTERNALLY_VISIBLE returnParam: *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item) parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %ptr = alloca *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item), align 8 4.56/1.98 %1 = call noalias *i8 @malloc(i64 16) nounwind 4.56/1.98 %2 = bitcast *i8 %1 to *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item) 4.56/1.98 store %2, %ptr 4.56/1.98 %3 = load %ptr 4.56/1.98 %4 = icmp ne %3 null 4.56/1.98 br %4, %6, %5 4.56/1.98 5: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @abort() noreturn nounwind 4.56/1.98 unreachable 4.56/1.98 6: 4.56/1.98 %7 = load %ptr 4.56/1.98 %8 = getelementptr %7, 0, 0 4.56/1.98 store null, %8 4.56/1.98 %9 = load %ptr 4.56/1.98 %10 = getelementptr %9, 0, 1 4.56/1.98 store null, %10 4.56/1.98 %11 = load %ptr 4.56/1.98 ret %11 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "alloc_or_die_master" linkageType: EXTERNALLY_VISIBLE returnParam: *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %ptr = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 %1 = call noalias *i8 @malloc(i64 24) nounwind 4.56/1.98 %2 = bitcast *i8 %1 to *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) 4.56/1.98 store %2, %ptr 4.56/1.98 %3 = load %ptr 4.56/1.98 %4 = icmp ne %3 null 4.56/1.98 br %4, %6, %5 4.56/1.98 5: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @abort() noreturn nounwind 4.56/1.98 unreachable 4.56/1.98 6: 4.56/1.98 %7 = load %ptr 4.56/1.98 %8 = getelementptr %7, 0, 0 4.56/1.98 store null, %8 4.56/1.98 %9 = load %ptr 4.56/1.98 %10 = getelementptr %9, 0, 1 4.56/1.98 store null, %10 4.56/1.98 %11 = load %ptr 4.56/1.98 %12 = getelementptr %11, 0, 2 4.56/1.98 store null, %12 4.56/1.98 %13 = load %ptr 4.56/1.98 ret %13 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "dll_insert_slave" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (dll **BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca **BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item), align 8 4.56/1.98 %item = alloca *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item), align 8 4.56/1.98 %next = alloca *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item), align 8 4.56/1.98 store %dll, %1 4.56/1.98 %2 = call *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item) @alloc_or_die_slave() 4.56/1.98 store %2, %item 4.56/1.98 %3 = load %1 4.56/1.98 %4 = load %3 4.56/1.98 store %4, %next 4.56/1.98 %5 = load %next 4.56/1.98 %6 = load %item 4.56/1.98 %7 = getelementptr %6, 0, 0 4.56/1.98 store %5, %7 4.56/1.98 %8 = load %next 4.56/1.98 %9 = icmp ne %8 null 4.56/1.98 br %9, %10, %14 4.56/1.98 10: 4.56/1.98 %11 = load %item 4.56/1.98 %12 = load %next 4.56/1.98 %13 = getelementptr %12, 0, 1 4.56/1.98 store %11, %13 4.56/1.98 br %14 4.56/1.98 14: 4.56/1.98 %15 = load %item 4.56/1.98 %16 = load %1 4.56/1.98 store %15, %16 4.56/1.98 ret void 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "dll_create_generic" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: (insert_fnc *BasicFunctionType varArgs: truereturnType: BasicVoidTypeparamTypes: ()) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca *BasicFunctionType varArgs: truereturnType: BasicVoidTypeparamTypes: (), align 8 4.56/1.98 %dll = alloca *i8, align 8 4.56/1.98 store %insert_fnc, %1 4.56/1.98 store null, %dll 4.56/1.98 %2 = load %1 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType (...)* %2(**i8 %dll) 4.56/1.98 %3 = load %1 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType (...)* %3(**i8 %dll) 4.56/1.98 br %4 4.56/1.98 4: 4.56/1.98 %5 = call i32 @__VERIFIER_nondet_int() 4.56/1.98 %6 = icmp ne %5 0 4.56/1.98 br %6, %7, %9 4.56/1.98 7: 4.56/1.98 %8 = load %1 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType (...)* %8(**i8 %dll) 4.56/1.98 br %4 4.56/1.98 9: 4.56/1.98 %10 = load %dll 4.56/1.98 ret %10 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "dll_create_slave" linkageType: EXTERNALLY_VISIBLE returnParam: *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item) parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = call *i8 @dll_create_generic(*BasicFunctionType varArgs: truereturnType: BasicVoidTypeparamTypes: () aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMConversionConstExpr@51ed3704) 4.56/1.98 %2 = bitcast *i8 %1 to *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item) 4.56/1.98 ret %2 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "dll_destroy_slave" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (dll *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item), align 8 4.56/1.98 %next = alloca *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item), align 8 4.56/1.98 store %dll, %1 4.56/1.98 br %2 4.56/1.98 2: 4.56/1.98 %3 = load %1 4.56/1.98 %4 = icmp ne %3 null 4.56/1.98 br %4, %5, %12 4.56/1.98 5: 4.56/1.98 %6 = load %1 4.56/1.98 %7 = getelementptr %6, 0, 0 4.56/1.98 %8 = load %7 4.56/1.98 store %8, %next 4.56/1.98 %9 = load %1 4.56/1.98 %10 = bitcast *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item) %9 to *i8 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %10) nounwind 4.56/1.98 %11 = load %next 4.56/1.98 store %11, %1 4.56/1.98 br %2 4.56/1.98 12: 4.56/1.98 ret void 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "dll_destroy_nested_lists" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (dll *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 store %dll, %1 4.56/1.98 br %2 4.56/1.98 2: 4.56/1.98 %3 = load %1 4.56/1.98 %4 = icmp ne %3 null 4.56/1.98 br %4, %5, %12 4.56/1.98 5: 4.56/1.98 %6 = load %1 4.56/1.98 %7 = getelementptr %6, 0, 2 4.56/1.98 %8 = load %7 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @dll_destroy_slave(*BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item) %8) 4.56/1.98 %9 = load %1 4.56/1.98 %10 = getelementptr %9, 0, 0 4.56/1.98 %11 = load %10 4.56/1.98 store %11, %1 4.56/1.98 br %2 4.56/1.98 12: 4.56/1.98 ret void 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "dll_reinit_nested_lists" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (dll *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 store %dll, %1 4.56/1.98 br %2 4.56/1.98 2: 4.56/1.98 %3 = load %1 4.56/1.98 %4 = icmp ne %3 null 4.56/1.98 br %4, %5, %11 4.56/1.98 5: 4.56/1.98 %6 = load %1 4.56/1.98 %7 = getelementptr %6, 0, 2 4.56/1.98 store null, %7 4.56/1.98 %8 = load %1 4.56/1.98 %9 = getelementptr %8, 0, 0 4.56/1.98 %10 = load %9 4.56/1.98 store %10, %1 4.56/1.98 br %2 4.56/1.98 11: 4.56/1.98 ret void 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "dll_destroy_master" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (dll *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 %next = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 store %dll, %1 4.56/1.98 br %2 4.56/1.98 2: 4.56/1.98 %3 = load %1 4.56/1.98 %4 = icmp ne %3 null 4.56/1.98 br %4, %5, %12 4.56/1.98 5: 4.56/1.98 %6 = load %1 4.56/1.98 %7 = getelementptr %6, 0, 0 4.56/1.98 %8 = load %7 4.56/1.98 store %8, %next 4.56/1.98 %9 = load %1 4.56/1.98 %10 = bitcast *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) %9 to *i8 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @free(*i8 %10) nounwind 4.56/1.98 %11 = load %next 4.56/1.98 store %11, %1 4.56/1.98 br %2 4.56/1.98 12: 4.56/1.98 ret void 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "dll_insert_master" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (dll **BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca **BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 %item = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 %next = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 store %dll, %1 4.56/1.98 %2 = call *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) @alloc_or_die_master() 4.56/1.98 store %2, %item 4.56/1.98 %3 = load %1 4.56/1.98 %4 = load %3 4.56/1.98 store %4, %next 4.56/1.98 %5 = load %next 4.56/1.98 %6 = load %item 4.56/1.98 %7 = getelementptr %6, 0, 0 4.56/1.98 store %5, %7 4.56/1.98 %8 = load %next 4.56/1.98 %9 = icmp ne %8 null 4.56/1.98 br %9, %10, %14 4.56/1.98 10: 4.56/1.98 %11 = load %item 4.56/1.98 %12 = load %next 4.56/1.98 %13 = getelementptr %12, 0, 1 4.56/1.98 store %11, %13 4.56/1.98 br %14 4.56/1.98 14: 4.56/1.98 %15 = call *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item) @dll_create_slave() 4.56/1.98 %16 = load %item 4.56/1.98 %17 = getelementptr %16, 0, 2 4.56/1.98 store %15, %17 4.56/1.98 %18 = load %item 4.56/1.98 %19 = load %1 4.56/1.98 store %18, %19 4.56/1.98 ret void 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "dll_create_master" linkageType: EXTERNALLY_VISIBLE returnParam: *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = call *i8 @dll_create_generic(*BasicFunctionType varArgs: truereturnType: BasicVoidTypeparamTypes: () aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMConversionConstExpr@45929431) 4.56/1.98 %2 = bitcast *i8 %1 to *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) 4.56/1.98 ret %2 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "inspect_base" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (dll *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 store %dll, %1 4.56/1.98 br %2 4.56/1.98 2: 4.56/1.98 %3 = load %1 4.56/1.98 %4 = icmp ne %3 null 4.56/1.98 br %4, %6, %5 4.56/1.98 5: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %6 4.56/1.98 6: 4.56/1.98 br %7 4.56/1.98 7: 4.56/1.98 br %8 4.56/1.98 8: 4.56/1.98 %9 = load %1 4.56/1.98 %10 = getelementptr %9, 0, 0 4.56/1.98 %11 = load %10 4.56/1.98 %12 = icmp ne %11 null 4.56/1.98 br %12, %14, %13 4.56/1.98 13: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %14 4.56/1.98 14: 4.56/1.98 br %15 4.56/1.98 15: 4.56/1.98 br %16 4.56/1.98 16: 4.56/1.98 %17 = load %1 4.56/1.98 %18 = getelementptr %17, 0, 1 4.56/1.98 %19 = load %18 4.56/1.98 %20 = icmp ne %19 null 4.56/1.98 br %20, %21, %22 4.56/1.98 21: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %22 4.56/1.98 22: 4.56/1.98 br %23 4.56/1.98 23: 4.56/1.98 %24 = load %1 4.56/1.98 %25 = getelementptr %24, 0, 0 4.56/1.98 %26 = load %25 4.56/1.98 store %26, %1 4.56/1.98 br %27 4.56/1.98 27: 4.56/1.98 %28 = load %1 4.56/1.98 %29 = icmp ne %28 null 4.56/1.98 br %29, %30, %64 4.56/1.98 30: 4.56/1.98 br %31 4.56/1.98 31: 4.56/1.98 %32 = load %1 4.56/1.98 %33 = getelementptr %32, 0, 1 4.56/1.98 %34 = load %33 4.56/1.98 %35 = icmp ne %34 null 4.56/1.98 br %35, %37, %36 4.56/1.98 36: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %37 4.56/1.98 37: 4.56/1.98 br %38 4.56/1.98 38: 4.56/1.98 br %39 4.56/1.98 39: 4.56/1.98 %40 = load %1 4.56/1.98 %41 = getelementptr %40, 0, 1 4.56/1.98 %42 = load %41 4.56/1.98 %43 = getelementptr %42, 0, 0 4.56/1.98 %44 = load %43 4.56/1.98 %45 = icmp ne %44 null 4.56/1.98 br %45, %47, %46 4.56/1.98 46: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %47 4.56/1.98 47: 4.56/1.98 br %48 4.56/1.98 48: 4.56/1.98 br %49 4.56/1.98 49: 4.56/1.98 %50 = load %1 4.56/1.98 %51 = getelementptr %50, 0, 1 4.56/1.98 %52 = load %51 4.56/1.98 %53 = getelementptr %52, 0, 0 4.56/1.98 %54 = load %53 4.56/1.98 %55 = load %1 4.56/1.98 %56 = icmp eq %54 %55 4.56/1.98 br %56, %58, %57 4.56/1.98 57: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %58 4.56/1.98 58: 4.56/1.98 br %59 4.56/1.98 59: 4.56/1.98 br %60 4.56/1.98 60: 4.56/1.98 %61 = load %1 4.56/1.98 %62 = getelementptr %61, 0, 0 4.56/1.98 %63 = load %62 4.56/1.98 store %63, %1 4.56/1.98 br %27 4.56/1.98 64: 4.56/1.98 ret void 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "fail" linkageType: INTERNAL returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 br %1 4.56/1.98 1: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn 4.56/1.98 unreachable 4.56/1.98 2: 4.56/1.98 ret void 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "inspect_full" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (dll *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 %pos = alloca *BasicTypeName typeName: struct.slave_itemBasicStructureType(elementType: *struct.slave_item, elementType: *struct.slave_item), align 8 4.56/1.98 store %dll, %1 4.56/1.98 %2 = load %1 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @inspect_base(*BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) %2) 4.56/1.98 br %3 4.56/1.98 3: 4.56/1.98 %4 = load %1 4.56/1.98 %5 = icmp ne %4 null 4.56/1.98 br %5, %6, %77 4.56/1.98 6: 4.56/1.98 %7 = load %1 4.56/1.98 %8 = getelementptr %7, 0, 2 4.56/1.98 %9 = load %8 4.56/1.98 store %9, %pos 4.56/1.98 br %10 4.56/1.98 10: 4.56/1.98 %11 = load %pos 4.56/1.98 %12 = icmp ne %11 null 4.56/1.98 br %12, %14, %13 4.56/1.98 13: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %14 4.56/1.98 14: 4.56/1.98 br %15 4.56/1.98 15: 4.56/1.98 br %16 4.56/1.98 16: 4.56/1.98 %17 = load %pos 4.56/1.98 %18 = getelementptr %17, 0, 0 4.56/1.98 %19 = load %18 4.56/1.98 %20 = icmp ne %19 null 4.56/1.98 br %20, %22, %21 4.56/1.98 21: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %22 4.56/1.98 22: 4.56/1.98 br %23 4.56/1.98 23: 4.56/1.98 br %24 4.56/1.98 24: 4.56/1.98 %25 = load %pos 4.56/1.98 %26 = getelementptr %25, 0, 1 4.56/1.98 %27 = load %26 4.56/1.98 %28 = icmp ne %27 null 4.56/1.98 br %28, %29, %30 4.56/1.98 29: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %30 4.56/1.98 30: 4.56/1.98 br %31 4.56/1.98 31: 4.56/1.98 %32 = load %pos 4.56/1.98 %33 = getelementptr %32, 0, 0 4.56/1.98 %34 = load %33 4.56/1.98 store %34, %pos 4.56/1.98 br %35 4.56/1.98 35: 4.56/1.98 %36 = load %pos 4.56/1.98 %37 = icmp ne %36 null 4.56/1.98 br %37, %38, %72 4.56/1.98 38: 4.56/1.98 br %39 4.56/1.98 39: 4.56/1.98 %40 = load %pos 4.56/1.98 %41 = getelementptr %40, 0, 1 4.56/1.98 %42 = load %41 4.56/1.98 %43 = icmp ne %42 null 4.56/1.98 br %43, %45, %44 4.56/1.98 44: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %45 4.56/1.98 45: 4.56/1.98 br %46 4.56/1.98 46: 4.56/1.98 br %47 4.56/1.98 47: 4.56/1.98 %48 = load %pos 4.56/1.98 %49 = getelementptr %48, 0, 1 4.56/1.98 %50 = load %49 4.56/1.98 %51 = getelementptr %50, 0, 0 4.56/1.98 %52 = load %51 4.56/1.98 %53 = icmp ne %52 null 4.56/1.98 br %53, %55, %54 4.56/1.98 54: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %55 4.56/1.98 55: 4.56/1.98 br %56 4.56/1.98 56: 4.56/1.98 br %57 4.56/1.98 57: 4.56/1.98 %58 = load %pos 4.56/1.98 %59 = getelementptr %58, 0, 1 4.56/1.98 %60 = load %59 4.56/1.98 %61 = getelementptr %60, 0, 0 4.56/1.98 %62 = load %61 4.56/1.98 %63 = load %pos 4.56/1.98 %64 = icmp eq %62 %63 4.56/1.98 br %64, %66, %65 4.56/1.98 65: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %66 4.56/1.98 66: 4.56/1.98 br %67 4.56/1.98 67: 4.56/1.98 br %68 4.56/1.98 68: 4.56/1.98 %69 = load %pos 4.56/1.98 %70 = getelementptr %69, 0, 0 4.56/1.98 %71 = load %70 4.56/1.98 store %71, %pos 4.56/1.98 br %35 4.56/1.98 72: 4.56/1.98 br %73 4.56/1.98 73: 4.56/1.98 %74 = load %1 4.56/1.98 %75 = getelementptr %74, 0, 0 4.56/1.98 %76 = load %75 4.56/1.98 store %76, %1 4.56/1.98 br %3 4.56/1.98 77: 4.56/1.98 ret void 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "inspect_dangling" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (dll *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 store %dll, %1 4.56/1.98 %2 = load %1 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @inspect_base(*BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) %2) 4.56/1.98 br %3 4.56/1.98 3: 4.56/1.98 %4 = load %1 4.56/1.98 %5 = icmp ne %4 null 4.56/1.98 br %5, %6, %19 4.56/1.98 6: 4.56/1.98 br %7 4.56/1.98 7: 4.56/1.98 %8 = load %1 4.56/1.98 %9 = getelementptr %8, 0, 2 4.56/1.98 %10 = load %9 4.56/1.98 %11 = icmp ne %10 null 4.56/1.98 br %11, %13, %12 4.56/1.98 12: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %13 4.56/1.98 13: 4.56/1.98 br %14 4.56/1.98 14: 4.56/1.98 br %15 4.56/1.98 15: 4.56/1.98 %16 = load %1 4.56/1.98 %17 = getelementptr %16, 0, 0 4.56/1.98 %18 = load %17 4.56/1.98 store %18, %1 4.56/1.98 br %3 4.56/1.98 19: 4.56/1.98 ret void 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "inspect_init" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (dll *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item)) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 store %dll, %1 4.56/1.98 %2 = load %1 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @inspect_base(*BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) %2) 4.56/1.98 br %3 4.56/1.98 3: 4.56/1.98 %4 = load %1 4.56/1.98 %5 = icmp ne %4 null 4.56/1.98 br %5, %6, %19 4.56/1.98 6: 4.56/1.98 br %7 4.56/1.98 7: 4.56/1.98 %8 = load %1 4.56/1.98 %9 = getelementptr %8, 0, 2 4.56/1.98 %10 = load %9 4.56/1.98 %11 = icmp ne %10 null 4.56/1.98 br %11, %12, %13 4.56/1.98 12: 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @fail() 4.56/1.98 br %13 4.56/1.98 13: 4.56/1.98 br %14 4.56/1.98 14: 4.56/1.98 br %15 4.56/1.98 15: 4.56/1.98 %16 = load %1 4.56/1.98 %17 = getelementptr %16, 0, 0 4.56/1.98 %18 = load %17 4.56/1.98 store %18, %1 4.56/1.98 br %3 4.56/1.98 19: 4.56/1.98 ret void 4.56/1.98 4.56/1.98 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.56/1.98 0: 4.56/1.98 %1 = alloca i32, align 4 4.56/1.98 %dll = alloca *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item), align 8 4.56/1.98 store 0, %1 4.56/1.98 %2 = call *BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) @dll_create_master() 4.56/1.98 store %2, %dll 4.56/1.98 %3 = load %dll 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @inspect_full(*BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) %3) 4.56/1.98 %4 = load %dll 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @dll_destroy_nested_lists(*BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) %4) 4.56/1.98 %5 = load %dll 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @inspect_dangling(*BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) %5) 4.56/1.98 %6 = load %dll 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @dll_reinit_nested_lists(*BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) %6) 4.56/1.98 %7 = load %dll 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @inspect_init(*BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) %7) 4.56/1.98 %8 = load %dll 4.56/1.98 Unnamed Call-Instruction = call BasicVoidType @dll_destroy_master(*BasicTypeName typeName: struct.master_itemBasicStructureType(elementType: *struct.master_item, elementType: *struct.master_item, elementType: *struct.slave_item) %8) 4.56/1.98 ret 0 4.56/1.98 4.56/1.98 4.56/1.98 Analyze Termination of all function calls matching the pattern: 4.56/1.98 main() 4.56/2.02 EOF