/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, 271 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: union.__CS__u --> BasicStructureType(elementType: [3 x i32]) Global variables: Name: __CS_round initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null Name: __CS_ret initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null Name: __CS_ret_PREEMPTED initVal: 1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __CS_ret_ERROR initVal: 2 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __CS_ret_FINISHED initVal: 4 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __CS_error initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null Name: __THREAD_UNUSED initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __THREAD_RUNNING initVal: 1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __THREAD_FINISHED initVal: 2 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __CS_thread_index initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_thread_lockedon initVal: ((null,null,null),(null,null,null),(null,null,null)) type: [3 x [3 x *i8]] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_thread_status initVal: ((0,0,0),(0,0,0),(0,0,0)) type: [3 x [3 x i8]] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_thread_allocated initVal: (0,0,0) type: [3 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_thread_born_round initVal: (0,0,0) type: [3 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_thread initVal: (null,null,null) type: [3 x *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8)] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null Name: m_inode initVal: (0,0,0) type: [3 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: inode initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: m_busy initVal: (0,0,0) type: [3 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: busy initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: block initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_u initVal: {(0,0,0)} type: BasicTypeName typeName: union.__CS__uBasicStructureType(elementType: [3 x i32]) addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "__VERIFIER_assume" returnParam: BasicVoidType parameters: (i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "nondet_int" returnParam: i32 parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "__VERIFIER_assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (cond i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store %cond, %1 %2 = load %1 %3 = icmp ne %2 0 br %3, %6, %4 4: br %5 5: Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn unreachable 6: ret void *BasicFunctionTypename: "__CS_cs" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %k = alloca i8, align 1 %1 = load @__CS_round %2 = zext i8 %1 to i32 %3 = load %k %4 = zext i8 %3 to i32 %5 = add %2 %4 %6 = icmp slt %5 3 %7 = zext i1 %6 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %7) %8 = load %k %9 = zext i8 %8 to i32 %10 = load @__CS_round %11 = zext i8 %10 to i32 %12 = add %11 %9 %13 = trunc i32 %12 to i8 store %13, @__CS_round %14 = call i32 (...)* @nondet_int() %15 = icmp ne %14 0 br %15, %16, %21 16: %17 = load @__CS_round %18 = zext i8 %17 to i32 %19 = icmp eq %18 2 br %19, %20, %21 20: br %24 21: %22 = load @__CS_ret %23 = zext i8 %22 to i32 br %24 24: %25 = phi [1, %20], [%23, %21] %26 = trunc i32 %25 to i8 store %26, @__CS_ret ret void *BasicFunctionTypename: "__CS_pthread_mutex_init" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (mutex *i8, attr *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %2 = alloca *i8, align 8 store %mutex, %1 store %attr, %2 ret 0 *BasicFunctionTypename: "__CS_pthread_mutex_destroy" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 store %lock, %1 %2 = load %1 %3 = load %2 %4 = zext i8 %3 to i32 %5 = load @__CS_thread_index %6 = zext i8 %5 to i32 %7 = icmp ne %4 %6 br %7, %8, %14 8: %9 = load %1 %10 = load %9 %11 = zext i8 %10 to i32 %12 = icmp ne %11 0 br %12, %13, %14 13: store 1, @__CS_error store 2, @__CS_ret br %16 14: %15 = load %1 store 0, %15 br %16 16: ret 0 *BasicFunctionTypename: "__CS_pthread_mutex_lock" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca *i8, align 8 store %lock, %2 %3 = load %2 %4 = load %3 %5 = zext i8 %4 to i32 %6 = icmp eq %5 0 br %6, %7, %13 7: %8 = load @__CS_thread_index %9 = zext i8 %8 to i32 %10 = add %9 1 %11 = trunc i32 %10 to i8 %12 = load %2 store %11, %12 br %14 13: store 1, @__CS_ret store 1, %1 br %15 14: store 0, %1 br %15 15: %16 = load %1 ret %16 *BasicFunctionTypename: "__CS_pthread_mutex_unlock" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca *i8, align 8 store %lock, %2 %3 = load %2 %4 = load %3 %5 = zext i8 %4 to i32 %6 = load @__CS_thread_index %7 = zext i8 %6 to i32 %8 = add %7 1 %9 = icmp ne %5 %8 br %9, %10, %11 10: store 1, @__CS_error store 2, @__CS_ret store 1, %1 br %14 11: %12 = load %2 store 0, %12 br %13 13: store 0, %1 br %14 14: %15 = load %1 ret %15 *BasicFunctionTypename: "__CS_pthread_cond_init" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8, attr *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %2 = alloca *i8, align 8 store %cond, %1 store %attr, %2 ret 0 *BasicFunctionTypename: "__CS_pthread_cond_signal" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %j = alloca i32, align 4 store %cond, %1 store 0, %j br %2 2: %3 = load %j %4 = icmp sle %3 2 br %4, %5, %26 5: %6 = load %j %7 = sext i32 %6 to i64 %8 = load @__CS_round %9 = zext i8 %8 to i64 %10 = getelementptr @__CS_thread_lockedon, 0, %9 %11 = getelementptr %10, 0, %7 %12 = load %11 %13 = load %1 %14 = icmp eq %12 %13 br %14, %15, %22 15: %16 = load %j %17 = sext i32 %16 to i64 %18 = load @__CS_round %19 = zext i8 %18 to i64 %20 = getelementptr @__CS_thread_lockedon, 0, %19 %21 = getelementptr %20, 0, %17 store null, %21 br %22 22: br %23 23: %24 = load %j %25 = add %24 1 store %25, %j br %2 26: ret 0 *BasicFunctionTypename: "__CS_pthread_cond_broadcast" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %j = alloca i32, align 4 store %cond, %1 store 0, %j br %2 2: %3 = load %j %4 = icmp sle %3 2 br %4, %5, %26 5: %6 = load %j %7 = sext i32 %6 to i64 %8 = load @__CS_round %9 = zext i8 %8 to i64 %10 = getelementptr @__CS_thread_lockedon, 0, %9 %11 = getelementptr %10, 0, %7 %12 = load %11 %13 = load %1 %14 = icmp eq %12 %13 br %14, %15, %22 15: %16 = load %j %17 = sext i32 %16 to i64 %18 = load @__CS_round %19 = zext i8 %18 to i64 %20 = getelementptr @__CS_thread_lockedon, 0, %19 %21 = getelementptr %20, 0, %17 store null, %21 br %22 22: br %23 23: %24 = load %j %25 = add %24 1 store %25, %j br %2 26: ret 0 *BasicFunctionTypename: "__CS_pthread_cond_wait" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8, lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca *i8, align 8 %3 = alloca *i8, align 8 store %cond, %2 store %lock, %3 %4 = load %3 %5 = load %4 %6 = zext i8 %5 to i32 %7 = load @__CS_thread_index %8 = zext i8 %7 to i32 %9 = add %8 1 %10 = icmp ne %6 %9 br %10, %11, %12 11: store 1, @__CS_error store 2, @__CS_ret store 1, %1 br %34 12: %13 = load %3 store 0, %13 br %14 14: %15 = load %2 %16 = load @__CS_thread_index %17 = zext i8 %16 to i64 %18 = load @__CS_round %19 = zext i8 %18 to i64 %20 = getelementptr @__CS_thread_lockedon, 0, %19 %21 = getelementptr %20, 0, %17 store %15, %21 store 1, @__CS_ret %22 = load %3 %23 = load %22 %24 = zext i8 %23 to i32 %25 = icmp eq %24 0 br %25, %26, %32 26: %27 = load @__CS_thread_index %28 = zext i8 %27 to i32 %29 = add %28 1 %30 = trunc i32 %29 to i8 %31 = load %3 store %30, %31 br %33 32: store 1, @__CS_ret store 1, %1 br %34 33: store 0, %1 br %34 34: %35 = load %1 ret %35 *BasicFunctionTypename: "__CS_assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (expr i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store %expr, %1 %2 = load %1 %3 = icmp ne %2 0 br %3, %5, %4 4: store 1, @__CS_error store 2, @__CS_ret br %5 5: ret void *BasicFunctionTypename: "__CS_assume" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (expr i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store %expr, %1 %2 = load %1 %3 = icmp ne %2 0 br %3, %5, %4 4: store 1, @__CS_ret br %5 5: ret void *BasicFunctionTypename: "__CS_pthread_join" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (thread i8 zeroext, value_ptr **i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca i8, align 1 %3 = alloca **i8, align 8 store %thread, %2 store %value_ptr, %3 %4 = load %2 %5 = zext i8 %4 to i32 %6 = icmp ne %5 123 br %6, %7, %12 7: %8 = load %2 %9 = zext i8 %8 to i32 %10 = icmp sgt %9 3 br %10, %11, %12 11: store 1, @__CS_error store 2, @__CS_ret store 0, %1 br %49 12: %13 = load %2 %14 = zext i8 %13 to i32 %15 = icmp eq %14 123 br %15, %26, %16 16: %17 = load %2 %18 = zext i8 %17 to i64 %19 = load @__CS_round %20 = zext i8 %19 to i64 %21 = getelementptr @__CS_thread_status, 0, %20 %22 = getelementptr %21, 0, %18 %23 = load %22 %24 = zext i8 %23 to i32 %25 = icmp eq %24 1 br %25, %26, %27 26: store 1, @__CS_ret store 0, %1 br %49 27: %28 = load %2 %29 = zext i8 %28 to i64 %30 = load @__CS_round %31 = zext i8 %30 to i64 %32 = getelementptr @__CS_thread_status, 0, %31 %33 = getelementptr %32, 0, %29 %34 = load %33 %35 = zext i8 %34 to i32 %36 = icmp eq %35 0 br %36, %37, %38 37: store 1, @__CS_error store 2, @__CS_ret store 0, %1 br %49 38: %39 = load %2 %40 = zext i8 %39 to i64 %41 = load @__CS_round %42 = zext i8 %41 to i64 %43 = getelementptr @__CS_thread_status, 0, %42 %44 = getelementptr %43, 0, %40 %45 = load %44 %46 = zext i8 %45 to i32 %47 = icmp eq %46 2 %48 = zext i1 %47 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %48) store 0, %1 br %49 49: %50 = load %1 ret %50 *BasicFunctionTypename: "__CS_pthread_create" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (id1 *i8, attr *i8, t1 *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8), arg *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca *i8, align 8 %3 = alloca *i8, align 8 %4 = alloca *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8), align 8 %5 = alloca *i8, align 8 store %id1, %2 store %attr, %3 store %t1, %4 store %arg, %5 %6 = load @__CS_thread_index %7 = zext i8 %6 to i32 %8 = icmp eq %7 2 br %8, %9, %11 9: %10 = load %2 store 123, %10 store -1, %1 br %35 11: %12 = load @__CS_thread_index %13 = add %12 1 store %13, @__CS_thread_index %14 = load @__CS_thread_index %15 = zext i8 %14 to i64 %16 = getelementptr @__CS_thread_allocated, 0, %15 store 1, %16 %17 = load @__CS_round %18 = load @__CS_thread_index %19 = zext i8 %18 to i64 %20 = getelementptr @__CS_thread_born_round, 0, %19 store %17, %20 %21 = load %4 %22 = load @__CS_thread_index %23 = zext i8 %22 to i64 %24 = getelementptr @__CS_thread, 0, %23 store %21, %24 %25 = load @__CS_thread_index %26 = zext i8 %25 to i64 %27 = load @__CS_round %28 = zext i8 %27 to i64 %29 = getelementptr @__CS_thread_status, 0, %28 %30 = getelementptr %29, 0, %26 store 1, %30 %31 = load @__CS_thread_index %32 = load %2 store %31, %32 %33 = load @__CS_thread_index %34 = zext i8 %33 to i32 store %34, %1 br %35 35: %36 = load %1 ret %36 *BasicFunctionTypename: "allocator" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %2 = load @__CS_ret %3 = zext i8 %2 to i32 %4 = icmp ne %3 0 br %4, %5, %6 5: store null, %1 br %107 6: %7 = load @__CS_round %8 = zext i8 %7 to i64 %9 = getelementptr @m_inode, 0, %8 %10 = call i32 @__CS_pthread_mutex_lock(*i8 %9) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %11 = load @__CS_ret %12 = zext i8 %11 to i32 %13 = icmp ne %12 0 br %13, %14, %15 14: store null, %1 br %107 15: %16 = load @__CS_round %17 = zext i8 %16 to i64 %18 = getelementptr @inode, 0, %17 %19 = load %18 %20 = icmp eq %19 0 br %20, %21, %61 21: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %22 = load @__CS_ret %23 = zext i8 %22 to i32 %24 = icmp ne %23 0 br %24, %25, %26 25: store null, %1 br %107 26: %27 = load @__CS_round %28 = zext i8 %27 to i64 %29 = getelementptr @m_busy, 0, %28 %30 = call i32 @__CS_pthread_mutex_lock(*i8 %29) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %31 = load @__CS_ret %32 = zext i8 %31 to i32 %33 = icmp ne %32 0 br %33, %34, %35 34: store null, %1 br %107 35: %36 = load @__CS_round %37 = zext i8 %36 to i64 %38 = getelementptr @busy, 0, %37 store 1, %38 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %39 = load @__CS_ret %40 = zext i8 %39 to i32 %41 = icmp ne %40 0 br %41, %42, %43 42: store null, %1 br %107 43: %44 = load @__CS_round %45 = zext i8 %44 to i64 %46 = getelementptr @m_busy, 0, %45 %47 = call i32 @__CS_pthread_mutex_unlock(*i8 %46) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %48 = load @__CS_ret %49 = zext i8 %48 to i32 %50 = icmp ne %49 0 br %50, %51, %52 51: store null, %1 br %107 52: %53 = load @__CS_round %54 = zext i8 %53 to i64 %55 = getelementptr @inode, 0, %54 store 1, %55 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %56 = load @__CS_ret %57 = zext i8 %56 to i32 %58 = icmp ne %57 0 br %58, %59, %60 59: store null, %1 br %107 60: br %61 61: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %62 = load @__CS_ret %63 = zext i8 %62 to i32 %64 = icmp ne %63 0 br %64, %65, %66 65: store null, %1 br %107 66: %67 = load @__CS_round %68 = zext i8 %67 to i64 %69 = getelementptr @block, 0, %68 store 1, %69 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %70 = load @__CS_ret %71 = zext i8 %70 to i32 %72 = icmp ne %71 0 br %72, %73, %74 73: store null, %1 br %107 74: %75 = load @__CS_round %76 = zext i8 %75 to i64 %77 = getelementptr @block, 0, %76 %78 = load %77 %79 = icmp eq %78 1 br %79, %87, %80 80: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %81 = load @__CS_ret %82 = zext i8 %81 to i32 %83 = icmp ne %82 0 br %83, %84, %85 84: store null, %1 br %107 85: br %86 86: store 1, @__CS_error store 2, @__CS_ret store null, %1 br %107 87: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %88 = load @__CS_ret %89 = zext i8 %88 to i32 %90 = icmp ne %89 0 br %90, %91, %92 91: store null, %1 br %107 92: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %93 = load @__CS_ret %94 = zext i8 %93 to i32 %95 = icmp ne %94 0 br %95, %96, %97 96: store null, %1 br %107 97: %98 = load @__CS_round %99 = zext i8 %98 to i64 %100 = getelementptr @m_inode, 0, %99 %101 = call i32 @__CS_pthread_mutex_unlock(*i8 %100) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %102 = load @__CS_ret %103 = zext i8 %102 to i32 %104 = icmp ne %103 0 br %104, %105, %106 105: store null, %1 br %107 106: store null, %1 br %107 107: %108 = load %1 ret %108 *BasicFunctionTypename: "de_allocator" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %2 = load @__CS_ret %3 = zext i8 %2 to i32 %4 = icmp ne %3 0 br %4, %5, %6 5: store null, %1 br %73 6: %7 = load @__CS_round %8 = zext i8 %7 to i64 %9 = getelementptr @m_busy, 0, %8 %10 = call i32 @__CS_pthread_mutex_lock(*i8 %9) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %11 = load @__CS_ret %12 = zext i8 %11 to i32 %13 = icmp ne %12 0 br %13, %14, %15 14: store null, %1 br %73 15: %16 = load @__CS_round %17 = zext i8 %16 to i64 %18 = getelementptr @busy, 0, %17 %19 = load %18 %20 = icmp eq %19 0 br %20, %21, %58 21: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %22 = load @__CS_ret %23 = zext i8 %22 to i32 %24 = icmp ne %23 0 br %24, %25, %26 25: store null, %1 br %73 26: %27 = load @__CS_round %28 = zext i8 %27 to i64 %29 = getelementptr @block, 0, %28 store 0, %29 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %30 = load @__CS_ret %31 = zext i8 %30 to i32 %32 = icmp ne %31 0 br %32, %33, %34 33: store null, %1 br %73 34: %35 = load @__CS_round %36 = zext i8 %35 to i64 %37 = getelementptr @block, 0, %36 %38 = load %37 %39 = icmp eq %38 0 br %39, %47, %40 40: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %41 = load @__CS_ret %42 = zext i8 %41 to i32 %43 = icmp ne %42 0 br %43, %44, %45 44: store null, %1 br %73 45: br %46 46: store 1, @__CS_error store 2, @__CS_ret store null, %1 br %73 47: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %48 = load @__CS_ret %49 = zext i8 %48 to i32 %50 = icmp ne %49 0 br %50, %51, %52 51: store null, %1 br %73 52: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %53 = load @__CS_ret %54 = zext i8 %53 to i32 %55 = icmp ne %54 0 br %55, %56, %57 56: store null, %1 br %73 57: br %58 58: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %59 = load @__CS_ret %60 = zext i8 %59 to i32 %61 = icmp ne %60 0 br %61, %62, %63 62: store null, %1 br %73 63: %64 = load @__CS_round %65 = zext i8 %64 to i64 %66 = getelementptr @m_busy, 0, %65 %67 = call i32 @__CS_pthread_mutex_unlock(*i8 %66) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %68 = load @__CS_ret %69 = zext i8 %68 to i32 %70 = icmp ne %69 0 br %70, %71, %72 71: store null, %1 br %73 72: store null, %1 br %73 73: %74 = load %1 ret %74 *BasicFunctionTypename: "main_thread" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: (arg *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %2 = alloca *i8, align 8 %t1 = alloca i8, align 1 %t2 = alloca i8, align 1 store %arg, %2 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %3 = load @__CS_ret %4 = zext i8 %3 to i32 %5 = icmp ne %4 0 br %5, %6, %7 6: store null, %1 br %84 7: %8 = load @__CS_round %9 = zext i8 %8 to i64 %10 = getelementptr @inode, 0, %9 %11 = load %10 %12 = load @__CS_round %13 = zext i8 %12 to i64 %14 = getelementptr @busy, 0, %13 %15 = load %14 %16 = icmp eq %11 %15 %17 = zext i1 %16 to i32 Unnamed Call-Instruction = call BasicVoidType @__CS_assume(i32 %17) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %18 = load @__CS_ret %19 = zext i8 %18 to i32 %20 = icmp ne %19 0 br %20, %21, %22 21: store null, %1 br %84 22: %23 = load @__CS_round %24 = zext i8 %23 to i64 %25 = getelementptr @m_inode, 0, %24 %26 = call i32 @__CS_pthread_mutex_init(*i8 %25, *i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %27 = load @__CS_ret %28 = zext i8 %27 to i32 %29 = icmp ne %28 0 br %29, %30, %31 30: store null, %1 br %84 31: %32 = load @__CS_round %33 = zext i8 %32 to i64 %34 = getelementptr @m_busy, 0, %33 %35 = call i32 @__CS_pthread_mutex_init(*i8 %34, *i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %36 = load @__CS_ret %37 = zext i8 %36 to i32 %38 = icmp ne %37 0 br %38, %39, %40 39: store null, %1 br %84 40: %41 = call i32 @__CS_pthread_create(*i8 %t1, *i8 null, *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8) aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMConversionConstExpr@797fb52f, *i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %42 = load @__CS_ret %43 = zext i8 %42 to i32 %44 = icmp ne %43 0 br %44, %45, %46 45: store null, %1 br %84 46: %47 = call i32 @__CS_pthread_create(*i8 %t2, *i8 null, *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8) aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMConversionConstExpr@16b9a64d, *i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %48 = load @__CS_ret %49 = zext i8 %48 to i32 %50 = icmp ne %49 0 br %50, %51, %52 51: store null, %1 br %84 52: %53 = load %t1 %54 = call i32 @__CS_pthread_join(i8 zeroext %53, **i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %55 = load @__CS_ret %56 = zext i8 %55 to i32 %57 = icmp ne %56 0 br %57, %58, %59 58: store null, %1 br %84 59: %60 = load %t2 %61 = call i32 @__CS_pthread_join(i8 zeroext %60, **i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %62 = load @__CS_ret %63 = zext i8 %62 to i32 %64 = icmp ne %63 0 br %64, %65, %66 65: store null, %1 br %84 66: %67 = load @__CS_round %68 = zext i8 %67 to i64 %69 = getelementptr @m_inode, 0, %68 %70 = call i32 @__CS_pthread_mutex_destroy(*i8 %69) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %71 = load @__CS_ret %72 = zext i8 %71 to i32 %73 = icmp ne %72 0 br %73, %74, %75 74: store null, %1 br %84 75: %76 = load @__CS_round %77 = zext i8 %76 to i64 %78 = getelementptr @m_busy, 0, %77 %79 = call i32 @__CS_pthread_mutex_destroy(*i8 %78) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %80 = load @__CS_ret %81 = zext i8 %80 to i32 %82 = icmp ne %81 0 br %82, %83, %84 83: store null, %1 br %84 84: %85 = load %1 ret %85 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %__CS_cp___CS_thread_status = alloca [3 x [3 x i8]], align 1 %__CS_cp___CS_thread_lockedon = alloca [3 x [3 x *i8]], align 16 %__CS_cp_block = alloca [3 x i32], align 4 %__CS_cp_busy = alloca [3 x i32], align 4 %__CS_cp_inode = alloca [3 x i32], align 4 %__CS_cp_m_inode = alloca [3 x i8], align 1 %__CS_cp_m_busy = alloca [3 x i8], align 1 store 0, %1 %2 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %3 = getelementptr %2, 0, 0 %4 = load %3 store %4, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@761759df %5 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %6 = getelementptr %5, 0, 0 %7 = load %6 store %7, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7be71713 %8 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %9 = getelementptr %8, 0, 1 %10 = load %9 store %10, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@cc3a128 %11 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %12 = getelementptr %11, 0, 1 %13 = load %12 store %13, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@345aa2b0 %14 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %15 = getelementptr %14, 0, 2 %16 = load %15 store %16, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@78cfdc45 %17 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %18 = getelementptr %17, 0, 2 %19 = load %18 store %19, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3bd303c0 %20 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %21 = getelementptr %20, 0, 0 %22 = load %21 store %22, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2a082f73 %23 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %24 = getelementptr %23, 0, 0 %25 = load %24 store %25, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4ba647a0 %26 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %27 = getelementptr %26, 0, 1 %28 = load %27 store %28, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4d8d8765 %29 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %30 = getelementptr %29, 0, 1 %31 = load %30 store %31, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6ee35017 %32 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %33 = getelementptr %32, 0, 2 %34 = load %33 store %34, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5fb990f %35 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %36 = getelementptr %35, 0, 2 %37 = load %36 store %37, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7c994557 %38 = getelementptr %__CS_cp_block, 0, 1 %39 = load %38 store %39, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5d8e430e %40 = getelementptr %__CS_cp_block, 0, 2 %41 = load %40 store %41, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2999c340 %42 = getelementptr %__CS_cp_busy, 0, 1 %43 = load %42 store %43, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7073149d %44 = getelementptr %__CS_cp_busy, 0, 2 %45 = load %44 store %45, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46f64439 %46 = getelementptr %__CS_cp_inode, 0, 1 %47 = load %46 store %47, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@694ff9da %48 = getelementptr %__CS_cp_inode, 0, 2 %49 = load %48 store %49, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@e2ba470 %50 = getelementptr %__CS_cp_m_inode, 0, 1 %51 = load %50 store %51, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@66948ed4 %52 = getelementptr %__CS_cp_m_inode, 0, 2 %53 = load %52 store %53, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1237d9b3 %54 = getelementptr %__CS_cp_m_busy, 0, 1 %55 = load %54 store %55, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4207306 %56 = getelementptr %__CS_cp_m_busy, 0, 2 %57 = load %56 store %57, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@577b4fd6 store 0, @__CS_round store 0, @__CS_thread_index %58 = load @__CS_round store %58, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@155b99c3 store 1, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@390d209a store @main_thread, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3e32ccfe store 1, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@333a3111 %59 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7a662334 %60 = zext i8 %59 to i32 %61 = icmp eq %60 1 br %61, %62, %75 62: %63 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2abfc512 store %63, @__CS_round store 0, @__CS_ret %64 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@242a987 %65 = call *i8 %64(*i8 null) %66 = load @__CS_ret %67 = zext i8 %66 to i32 %68 = icmp ne %67 1 br %68, %69, %74 69: %70 = load @__CS_round %71 = zext i8 %70 to i64 %72 = getelementptr @__CS_thread_status, 0, %71 %73 = getelementptr %72, 0, 0 store 2, %73 br %74 74: br %75 75: %76 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6012b267 %77 = zext i8 %76 to i32 %78 = icmp eq %77 1 br %78, %79, %92 79: %80 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2ba642d2 store %80, @__CS_round store 0, @__CS_ret %81 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7fe595e1 %82 = call *i8 %81(*i8 null) %83 = load @__CS_ret %84 = zext i8 %83 to i32 %85 = icmp ne %84 1 br %85, %86, %91 86: %87 = load @__CS_round %88 = zext i8 %87 to i64 %89 = getelementptr @__CS_thread_status, 0, %88 %90 = getelementptr %89, 0, 1 store 2, %90 br %91 91: br %92 92: %93 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@687c050b %94 = zext i8 %93 to i32 %95 = icmp eq %94 1 br %95, %96, %109 96: %97 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1d0813e9 store %97, @__CS_round store 0, @__CS_ret %98 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4217248 %99 = call *i8 %98(*i8 null) %100 = load @__CS_ret %101 = zext i8 %100 to i32 %102 = icmp ne %101 1 br %102, %103, %108 103: %104 = load @__CS_round %105 = zext i8 %104 to i64 %106 = getelementptr @__CS_thread_status, 0, %105 %107 = getelementptr %106, 0, 2 store 2, %107 br %108 108: br %109 109: %110 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5738b5b0 %111 = zext i8 %110 to i32 %112 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %113 = getelementptr %112, 0, 0 %114 = load %113 %115 = zext i8 %114 to i32 %116 = icmp eq %111 %115 %117 = zext i1 %116 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %117) %118 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5f64a601 %119 = zext i8 %118 to i32 %120 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %121 = getelementptr %120, 0, 0 %122 = load %121 %123 = zext i8 %122 to i32 %124 = icmp eq %119 %123 %125 = zext i1 %124 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %125) %126 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2ae715f %127 = zext i8 %126 to i32 %128 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %129 = getelementptr %128, 0, 1 %130 = load %129 %131 = zext i8 %130 to i32 %132 = icmp eq %127 %131 %133 = zext i1 %132 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %133) %134 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@d92e070 %135 = zext i8 %134 to i32 %136 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %137 = getelementptr %136, 0, 1 %138 = load %137 %139 = zext i8 %138 to i32 %140 = icmp eq %135 %139 %141 = zext i1 %140 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %141) %142 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1f154147 %143 = zext i8 %142 to i32 %144 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %145 = getelementptr %144, 0, 2 %146 = load %145 %147 = zext i8 %146 to i32 %148 = icmp eq %143 %147 %149 = zext i1 %148 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %149) %150 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@65bbb80a %151 = zext i8 %150 to i32 %152 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %153 = getelementptr %152, 0, 2 %154 = load %153 %155 = zext i8 %154 to i32 %156 = icmp eq %151 %155 %157 = zext i1 %156 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %157) %158 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@146e096b %159 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %160 = getelementptr %159, 0, 0 %161 = load %160 %162 = icmp eq %158 %161 %163 = zext i1 %162 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %163) %164 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@e65faf6 %165 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %166 = getelementptr %165, 0, 0 %167 = load %166 %168 = icmp eq %164 %167 %169 = zext i1 %168 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %169) %170 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3bcf8d04 %171 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %172 = getelementptr %171, 0, 1 %173 = load %172 %174 = icmp eq %170 %173 %175 = zext i1 %174 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %175) %176 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@38c199f %177 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %178 = getelementptr %177, 0, 1 %179 = load %178 %180 = icmp eq %176 %179 %181 = zext i1 %180 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %181) %182 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@67cd6dd4 %183 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %184 = getelementptr %183, 0, 2 %185 = load %184 %186 = icmp eq %182 %185 %187 = zext i1 %186 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %187) %188 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46de9991 %189 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %190 = getelementptr %189, 0, 2 %191 = load %190 %192 = icmp eq %188 %191 %193 = zext i1 %192 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %193) %194 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@13e8be3 %195 = getelementptr %__CS_cp_block, 0, 1 %196 = load %195 %197 = icmp eq %194 %196 %198 = zext i1 %197 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %198) %199 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@621d3aba %200 = getelementptr %__CS_cp_block, 0, 2 %201 = load %200 %202 = icmp eq %199 %201 %203 = zext i1 %202 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %203) %204 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6eb248e0 %205 = getelementptr %__CS_cp_busy, 0, 1 %206 = load %205 %207 = icmp eq %204 %206 %208 = zext i1 %207 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %208) %209 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5c9256b6 %210 = getelementptr %__CS_cp_busy, 0, 2 %211 = load %210 %212 = icmp eq %209 %211 %213 = zext i1 %212 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %213) %214 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2986bf54 %215 = getelementptr %__CS_cp_inode, 0, 1 %216 = load %215 %217 = icmp eq %214 %216 %218 = zext i1 %217 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %218) %219 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@22458834 %220 = getelementptr %__CS_cp_inode, 0, 2 %221 = load %220 %222 = icmp eq %219 %221 %223 = zext i1 %222 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %223) %224 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5ecc21d4 %225 = zext i8 %224 to i32 %226 = getelementptr %__CS_cp_m_inode, 0, 1 %227 = load %226 %228 = zext i8 %227 to i32 %229 = icmp eq %225 %228 %230 = zext i1 %229 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %230) %231 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@10a5fb5d %232 = zext i8 %231 to i32 %233 = getelementptr %__CS_cp_m_inode, 0, 2 %234 = load %233 %235 = zext i8 %234 to i32 %236 = icmp eq %232 %235 %237 = zext i1 %236 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %237) %238 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@c458a02 %239 = zext i8 %238 to i32 %240 = getelementptr %__CS_cp_m_busy, 0, 1 %241 = load %240 %242 = zext i8 %241 to i32 %243 = icmp eq %239 %242 %244 = zext i1 %243 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %244) %245 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2cfa796 %246 = zext i8 %245 to i32 %247 = getelementptr %__CS_cp_m_busy, 0, 2 %248 = load %247 %249 = zext i8 %248 to i32 %250 = icmp eq %246 %249 %251 = zext i1 %250 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %251) %252 = load @__CS_error %253 = zext i8 %252 to i32 %254 = icmp ne %253 1 %255 = zext i1 %254 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assert(i32 %255) %256 = load %1 ret %256 Analyze Termination of all function calls matching the pattern: main()