/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, 268 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: [7 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),(null,null,null),(null,null,null),(null,null,null),(null,null,null)) type: [7 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),(0,0,0),(0,0,0),(0,0,0),(0,0,0)) type: [7 x [3 x i8]] addrSpace: null alignment: 16 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: i initVal: (1,0,0,0,0,0,0) type: [7 x i32] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: null section: null Name: j initVal: (1,0,0,0,0,0,0) type: [7 x i32] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: null section: null Name: __CS_u initVal: {(0,0,0,0,0,0,0)} type: BasicTypeName typeName: union.__CS__uBasicStructureType(elementType: [7 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 7 %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 6 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: "t1" 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 %k = alloca i32, align 4 store %arg, %2 store 0, %k 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 %57 7: store 0, %k br %8 8: %9 = load %k %10 = icmp slt %9 6 br %10, %11, %47 11: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %12 = load @__CS_ret %13 = zext i8 %12 to i32 %14 = icmp ne %13 0 br %14, %15, %16 15: store null, %1 br %57 16: %17 = load @__CS_round %18 = zext i8 %17 to i64 %19 = getelementptr @i, 0, %18 %20 = load %19 %21 = load @__CS_round %22 = zext i8 %21 to i64 %23 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6fdb0111, 0, %22 store %20, %23 %24 = load @__CS_round %25 = zext i8 %24 to i64 %26 = getelementptr @j, 0, %25 %27 = load %26 %28 = load @__CS_round %29 = zext i8 %28 to i64 %30 = getelementptr @i, 0, %29 %31 = load %30 %32 = add %31 %27 store %32, %30 %33 = load @__CS_ret %34 = icmp ne %33 0 br %34, %35, %43 35: %36 = load @__CS_round %37 = zext i8 %36 to i64 %38 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@611cf29a, 0, %37 %39 = load %38 %40 = load @__CS_round %41 = zext i8 %40 to i64 %42 = getelementptr @i, 0, %41 store %39, %42 br %43 43: br %44 44: %45 = load %k %46 = add %45 1 store %46, %k br %8 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 %57 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 %57 57: %58 = load %1 ret %58 *BasicFunctionTypename: "t2" 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 %k = alloca i32, align 4 store %arg, %2 store 0, %k 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 %57 7: store 0, %k br %8 8: %9 = load %k %10 = icmp slt %9 6 br %10, %11, %47 11: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %12 = load @__CS_ret %13 = zext i8 %12 to i32 %14 = icmp ne %13 0 br %14, %15, %16 15: store null, %1 br %57 16: %17 = load @__CS_round %18 = zext i8 %17 to i64 %19 = getelementptr @j, 0, %18 %20 = load %19 %21 = load @__CS_round %22 = zext i8 %21 to i64 %23 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@65236a61, 0, %22 store %20, %23 %24 = load @__CS_round %25 = zext i8 %24 to i64 %26 = getelementptr @i, 0, %25 %27 = load %26 %28 = load @__CS_round %29 = zext i8 %28 to i64 %30 = getelementptr @j, 0, %29 %31 = load %30 %32 = add %31 %27 store %32, %30 %33 = load @__CS_ret %34 = icmp ne %33 0 br %34, %35, %43 35: %36 = load @__CS_round %37 = zext i8 %36 to i64 %38 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2021f8a1, 0, %37 %39 = load %38 %40 = load @__CS_round %41 = zext i8 %40 to i64 %42 = getelementptr @j, 0, %41 store %39, %42 br %43 43: br %44 44: %45 = load %k %46 = add %45 1 store %46, %k br %8 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 %57 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 %57 57: %58 = load %1 ret %58 *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 %__CS_main_arg_argc = alloca i32, align 4 %argv = alloca **i8, align 8 %id1 = alloca i8, align 1 %id2 = 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 %43 7: %8 = call i32 @__CS_pthread_create(*i8 %id1, *i8 null, *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8) @t1, *i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %9 = load @__CS_ret %10 = zext i8 %9 to i32 %11 = icmp ne %10 0 br %11, %12, %13 12: store null, %1 br %43 13: %14 = call i32 @__CS_pthread_create(*i8 %id2, *i8 null, *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8) @t2, *i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %15 = load @__CS_ret %16 = zext i8 %15 to i32 %17 = icmp ne %16 0 br %17, %18, %19 18: store null, %1 br %43 19: %20 = load @__CS_round %21 = zext i8 %20 to i64 %22 = getelementptr @i, 0, %21 %23 = load %22 %24 = icmp sgt %23 377 br %24, %31, %25 25: %26 = load @__CS_round %27 = zext i8 %26 to i64 %28 = getelementptr @j, 0, %27 %29 = load %28 %30 = icmp sgt %29 377 br %30, %31, %38 31: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %32 = load @__CS_ret %33 = zext i8 %32 to i32 %34 = icmp ne %33 0 br %34, %35, %36 35: store null, %1 br %43 36: br %37 37: store 1, @__CS_error store 2, @__CS_ret store null, %1 br %43 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 %43 43: %44 = load %1 ret %44 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (argc i32, argv **i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca i32, align 4 %3 = alloca **i8, align 8 %__CS_cp___CS_thread_status = alloca [7 x [3 x i8]], align 16 %__CS_cp___CS_thread_lockedon = alloca [7 x [3 x *i8]], align 16 %__CS_cp_i = alloca [7 x i32], align 16 %__CS_cp_j = alloca [7 x i32], align 16 store 0, %1 store %argc, %2 store %argv, %3 %4 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %5 = getelementptr %4, 0, 0 %6 = load %5 store %6, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1745b63d %7 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %8 = getelementptr %7, 0, 0 %9 = load %8 store %9, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@11cb1e6d %10 = getelementptr %__CS_cp___CS_thread_status, 0, 3 %11 = getelementptr %10, 0, 0 %12 = load %11 store %12, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6f450e57 %13 = getelementptr %__CS_cp___CS_thread_status, 0, 4 %14 = getelementptr %13, 0, 0 %15 = load %14 store %15, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@400e07ee %16 = getelementptr %__CS_cp___CS_thread_status, 0, 5 %17 = getelementptr %16, 0, 0 %18 = load %17 store %18, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7ac0a58c %19 = getelementptr %__CS_cp___CS_thread_status, 0, 6 %20 = getelementptr %19, 0, 0 %21 = load %20 store %21, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@33b1e4cf %22 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %23 = getelementptr %22, 0, 1 %24 = load %23 store %24, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@74416358 %25 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %26 = getelementptr %25, 0, 1 %27 = load %26 store %27, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@44403b49 %28 = getelementptr %__CS_cp___CS_thread_status, 0, 3 %29 = getelementptr %28, 0, 1 %30 = load %29 store %30, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3bd30a88 %31 = getelementptr %__CS_cp___CS_thread_status, 0, 4 %32 = getelementptr %31, 0, 1 %33 = load %32 store %33, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7f816a1 %34 = getelementptr %__CS_cp___CS_thread_status, 0, 5 %35 = getelementptr %34, 0, 1 %36 = load %35 store %36, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@785ceea5 %37 = getelementptr %__CS_cp___CS_thread_status, 0, 6 %38 = getelementptr %37, 0, 1 %39 = load %38 store %39, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3d031894 %40 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %41 = getelementptr %40, 0, 2 %42 = load %41 store %42, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1ea7d2f6 %43 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %44 = getelementptr %43, 0, 2 %45 = load %44 store %45, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@592d829d %46 = getelementptr %__CS_cp___CS_thread_status, 0, 3 %47 = getelementptr %46, 0, 2 %48 = load %47 store %48, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@461b76db %49 = getelementptr %__CS_cp___CS_thread_status, 0, 4 %50 = getelementptr %49, 0, 2 %51 = load %50 store %51, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@63f91134 %52 = getelementptr %__CS_cp___CS_thread_status, 0, 5 %53 = getelementptr %52, 0, 2 %54 = load %53 store %54, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@43e95fdf %55 = getelementptr %__CS_cp___CS_thread_status, 0, 6 %56 = getelementptr %55, 0, 2 %57 = load %56 store %57, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@76651455 %58 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %59 = getelementptr %58, 0, 0 %60 = load %59 store %60, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6bd519ec %61 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %62 = getelementptr %61, 0, 0 %63 = load %62 store %63, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@408ed513 %64 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 3 %65 = getelementptr %64, 0, 0 %66 = load %65 store %66, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@49106d7a %67 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 4 %68 = getelementptr %67, 0, 0 %69 = load %68 store %69, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@17890fb1 %70 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 5 %71 = getelementptr %70, 0, 0 %72 = load %71 store %72, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@54507ed5 %73 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 6 %74 = getelementptr %73, 0, 0 %75 = load %74 store %75, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@62401f01 %76 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %77 = getelementptr %76, 0, 1 %78 = load %77 store %78, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2871d58e %79 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %80 = getelementptr %79, 0, 1 %81 = load %80 store %81, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@775aa3b6 %82 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 3 %83 = getelementptr %82, 0, 1 %84 = load %83 store %84, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@202bcd5e %85 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 4 %86 = getelementptr %85, 0, 1 %87 = load %86 store %87, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@42f1664d %88 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 5 %89 = getelementptr %88, 0, 1 %90 = load %89 store %90, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@648a1638 %91 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 6 %92 = getelementptr %91, 0, 1 %93 = load %92 store %93, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46ef5e0c %94 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %95 = getelementptr %94, 0, 2 %96 = load %95 store %96, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@38d03ab2 %97 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %98 = getelementptr %97, 0, 2 %99 = load %98 store %99, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@71dae0eb %100 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 3 %101 = getelementptr %100, 0, 2 %102 = load %101 store %102, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4555033e %103 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 4 %104 = getelementptr %103, 0, 2 %105 = load %104 store %105, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@79f63aa6 %106 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 5 %107 = getelementptr %106, 0, 2 %108 = load %107 store %108, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@40ca9a80 %109 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 6 %110 = getelementptr %109, 0, 2 %111 = load %110 store %111, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@66b1f7ca %112 = getelementptr %__CS_cp_i, 0, 1 %113 = load %112 store %113, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@b9054d1 %114 = getelementptr %__CS_cp_i, 0, 2 %115 = load %114 store %115, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@437b6c0f %116 = getelementptr %__CS_cp_i, 0, 3 %117 = load %116 store %117, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5771e07a %118 = getelementptr %__CS_cp_i, 0, 4 %119 = load %118 store %119, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3e1742f9 %120 = getelementptr %__CS_cp_i, 0, 5 %121 = load %120 store %121, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3728af36 %122 = getelementptr %__CS_cp_i, 0, 6 %123 = load %122 store %123, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2faba6c8 %124 = getelementptr %__CS_cp_j, 0, 1 %125 = load %124 store %125, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7701f177 %126 = getelementptr %__CS_cp_j, 0, 2 %127 = load %126 store %127, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@738575e4 %128 = getelementptr %__CS_cp_j, 0, 3 %129 = load %128 store %129, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1a625bd %130 = getelementptr %__CS_cp_j, 0, 4 %131 = load %130 store %131, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@73c94ea7 %132 = getelementptr %__CS_cp_j, 0, 5 %133 = load %132 store %133, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@b3b83e0 %134 = getelementptr %__CS_cp_j, 0, 6 %135 = load %134 store %135, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@53c9fd36 store 0, @__CS_round store 0, @__CS_thread_index %136 = load @__CS_round store %136, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@63f2a13f store 1, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5a776790 store @main_thread, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@d84cbbd store 1, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1138b776 %137 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@67351737 %138 = zext i8 %137 to i32 %139 = icmp eq %138 1 br %139, %140, %153 140: %141 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@69fa7a6 store %141, @__CS_round store 0, @__CS_ret %142 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2ded5deb %143 = call *i8 %142(*i8 null) %144 = load @__CS_ret %145 = zext i8 %144 to i32 %146 = icmp ne %145 1 br %146, %147, %152 147: %148 = load @__CS_round %149 = zext i8 %148 to i64 %150 = getelementptr @__CS_thread_status, 0, %149 %151 = getelementptr %150, 0, 0 store 2, %151 br %152 152: br %153 153: %154 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@79bacc27 %155 = zext i8 %154 to i32 %156 = icmp eq %155 1 br %156, %157, %170 157: %158 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3679e088 store %158, @__CS_round store 0, @__CS_ret %159 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4d20d376 %160 = call *i8 %159(*i8 null) %161 = load @__CS_ret %162 = zext i8 %161 to i32 %163 = icmp ne %162 1 br %163, %164, %169 164: %165 = load @__CS_round %166 = zext i8 %165 to i64 %167 = getelementptr @__CS_thread_status, 0, %166 %168 = getelementptr %167, 0, 1 store 2, %168 br %169 169: br %170 170: %171 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@ae5cd3c %172 = zext i8 %171 to i32 %173 = icmp eq %172 1 br %173, %174, %187 174: %175 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2591e3b3 store %175, @__CS_round store 0, @__CS_ret %176 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5c152a29 %177 = call *i8 %176(*i8 null) %178 = load @__CS_ret %179 = zext i8 %178 to i32 %180 = icmp ne %179 1 br %180, %181, %186 181: %182 = load @__CS_round %183 = zext i8 %182 to i64 %184 = getelementptr @__CS_thread_status, 0, %183 %185 = getelementptr %184, 0, 2 store 2, %185 br %186 186: br %187 187: %188 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1765f9be %189 = zext i8 %188 to i32 %190 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %191 = getelementptr %190, 0, 0 %192 = load %191 %193 = zext i8 %192 to i32 %194 = icmp eq %189 %193 %195 = zext i1 %194 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %195) %196 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@33cd4a43 %197 = zext i8 %196 to i32 %198 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %199 = getelementptr %198, 0, 0 %200 = load %199 %201 = zext i8 %200 to i32 %202 = icmp eq %197 %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@196babf2 %205 = zext i8 %204 to i32 %206 = getelementptr %__CS_cp___CS_thread_status, 0, 3 %207 = getelementptr %206, 0, 0 %208 = load %207 %209 = zext i8 %208 to i32 %210 = icmp eq %205 %209 %211 = zext i1 %210 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %211) %212 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6cda9e94 %213 = zext i8 %212 to i32 %214 = getelementptr %__CS_cp___CS_thread_status, 0, 4 %215 = getelementptr %214, 0, 0 %216 = load %215 %217 = zext i8 %216 to i32 %218 = icmp eq %213 %217 %219 = zext i1 %218 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %219) %220 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@54ca32b8 %221 = zext i8 %220 to i32 %222 = getelementptr %__CS_cp___CS_thread_status, 0, 5 %223 = getelementptr %222, 0, 0 %224 = load %223 %225 = zext i8 %224 to i32 %226 = icmp eq %221 %225 %227 = zext i1 %226 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %227) %228 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@d8ce530 %229 = zext i8 %228 to i32 %230 = getelementptr %__CS_cp___CS_thread_status, 0, 6 %231 = getelementptr %230, 0, 0 %232 = load %231 %233 = zext i8 %232 to i32 %234 = icmp eq %229 %233 %235 = zext i1 %234 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %235) %236 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@497ceb48 %237 = zext i8 %236 to i32 %238 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %239 = getelementptr %238, 0, 1 %240 = load %239 %241 = zext i8 %240 to i32 %242 = icmp eq %237 %241 %243 = zext i1 %242 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %243) %244 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@71eae2cd %245 = zext i8 %244 to i32 %246 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %247 = getelementptr %246, 0, 1 %248 = load %247 %249 = zext i8 %248 to i32 %250 = icmp eq %245 %249 %251 = zext i1 %250 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %251) %252 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@743041ba %253 = zext i8 %252 to i32 %254 = getelementptr %__CS_cp___CS_thread_status, 0, 3 %255 = getelementptr %254, 0, 1 %256 = load %255 %257 = zext i8 %256 to i32 %258 = icmp eq %253 %257 %259 = zext i1 %258 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %259) %260 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1eff9f69 %261 = zext i8 %260 to i32 %262 = getelementptr %__CS_cp___CS_thread_status, 0, 4 %263 = getelementptr %262, 0, 1 %264 = load %263 %265 = zext i8 %264 to i32 %266 = icmp eq %261 %265 %267 = zext i1 %266 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %267) %268 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@30f70155 %269 = zext i8 %268 to i32 %270 = getelementptr %__CS_cp___CS_thread_status, 0, 5 %271 = getelementptr %270, 0, 1 %272 = load %271 %273 = zext i8 %272 to i32 %274 = icmp eq %269 %273 %275 = zext i1 %274 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %275) %276 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@162d610c %277 = zext i8 %276 to i32 %278 = getelementptr %__CS_cp___CS_thread_status, 0, 6 %279 = getelementptr %278, 0, 1 %280 = load %279 %281 = zext i8 %280 to i32 %282 = icmp eq %277 %281 %283 = zext i1 %282 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %283) %284 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6066dfe2 %285 = zext i8 %284 to i32 %286 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %287 = getelementptr %286, 0, 2 %288 = load %287 %289 = zext i8 %288 to i32 %290 = icmp eq %285 %289 %291 = zext i1 %290 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %291) %292 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2001050 %293 = zext i8 %292 to i32 %294 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %295 = getelementptr %294, 0, 2 %296 = load %295 %297 = zext i8 %296 to i32 %298 = icmp eq %293 %297 %299 = zext i1 %298 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %299) %300 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@af554ec %301 = zext i8 %300 to i32 %302 = getelementptr %__CS_cp___CS_thread_status, 0, 3 %303 = getelementptr %302, 0, 2 %304 = load %303 %305 = zext i8 %304 to i32 %306 = icmp eq %301 %305 %307 = zext i1 %306 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %307) %308 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@772d61bf %309 = zext i8 %308 to i32 %310 = getelementptr %__CS_cp___CS_thread_status, 0, 4 %311 = getelementptr %310, 0, 2 %312 = load %311 %313 = zext i8 %312 to i32 %314 = icmp eq %309 %313 %315 = zext i1 %314 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %315) %316 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@21623977 %317 = zext i8 %316 to i32 %318 = getelementptr %__CS_cp___CS_thread_status, 0, 5 %319 = getelementptr %318, 0, 2 %320 = load %319 %321 = zext i8 %320 to i32 %322 = icmp eq %317 %321 %323 = zext i1 %322 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %323) %324 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@23623f9b %325 = zext i8 %324 to i32 %326 = getelementptr %__CS_cp___CS_thread_status, 0, 6 %327 = getelementptr %326, 0, 2 %328 = load %327 %329 = zext i8 %328 to i32 %330 = icmp eq %325 %329 %331 = zext i1 %330 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %331) %332 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3105d2f %333 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %334 = getelementptr %333, 0, 0 %335 = load %334 %336 = icmp eq %332 %335 %337 = zext i1 %336 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %337) %338 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1f2ce46b %339 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %340 = getelementptr %339, 0, 0 %341 = load %340 %342 = icmp eq %338 %341 %343 = zext i1 %342 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %343) %344 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2f35cf78 %345 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 3 %346 = getelementptr %345, 0, 0 %347 = load %346 %348 = icmp eq %344 %347 %349 = zext i1 %348 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %349) %350 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1d99a3e2 %351 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 4 %352 = getelementptr %351, 0, 0 %353 = load %352 %354 = icmp eq %350 %353 %355 = zext i1 %354 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %355) %356 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1ce16c5b %357 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 5 %358 = getelementptr %357, 0, 0 %359 = load %358 %360 = icmp eq %356 %359 %361 = zext i1 %360 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %361) %362 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6496dc10 %363 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 6 %364 = getelementptr %363, 0, 0 %365 = load %364 %366 = icmp eq %362 %365 %367 = zext i1 %366 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %367) %368 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@65d991f5 %369 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %370 = getelementptr %369, 0, 1 %371 = load %370 %372 = icmp eq %368 %371 %373 = zext i1 %372 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %373) %374 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@350fa81f %375 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %376 = getelementptr %375, 0, 1 %377 = load %376 %378 = icmp eq %374 %377 %379 = zext i1 %378 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %379) %380 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@229b9951 %381 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 3 %382 = getelementptr %381, 0, 1 %383 = load %382 %384 = icmp eq %380 %383 %385 = zext i1 %384 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %385) %386 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@703fb74e %387 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 4 %388 = getelementptr %387, 0, 1 %389 = load %388 %390 = icmp eq %386 %389 %391 = zext i1 %390 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %391) %392 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@59c0c685 %393 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 5 %394 = getelementptr %393, 0, 1 %395 = load %394 %396 = icmp eq %392 %395 %397 = zext i1 %396 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %397) %398 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@11c7d2f2 %399 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 6 %400 = getelementptr %399, 0, 1 %401 = load %400 %402 = icmp eq %398 %401 %403 = zext i1 %402 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %403) %404 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6f68908a %405 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %406 = getelementptr %405, 0, 2 %407 = load %406 %408 = icmp eq %404 %407 %409 = zext i1 %408 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %409) %410 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@62e0cfee %411 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %412 = getelementptr %411, 0, 2 %413 = load %412 %414 = icmp eq %410 %413 %415 = zext i1 %414 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %415) %416 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3d4bc9d9 %417 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 3 %418 = getelementptr %417, 0, 2 %419 = load %418 %420 = icmp eq %416 %419 %421 = zext i1 %420 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %421) %422 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1234ccc0 %423 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 4 %424 = getelementptr %423, 0, 2 %425 = load %424 %426 = icmp eq %422 %425 %427 = zext i1 %426 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %427) %428 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3973f2cc %429 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 5 %430 = getelementptr %429, 0, 2 %431 = load %430 %432 = icmp eq %428 %431 %433 = zext i1 %432 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %433) %434 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5d08d5b3 %435 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 6 %436 = getelementptr %435, 0, 2 %437 = load %436 %438 = icmp eq %434 %437 %439 = zext i1 %438 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %439) %440 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3eeecaca %441 = getelementptr %__CS_cp_i, 0, 1 %442 = load %441 %443 = icmp eq %440 %442 %444 = zext i1 %443 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %444) %445 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@a88531b %446 = getelementptr %__CS_cp_i, 0, 2 %447 = load %446 %448 = icmp eq %445 %447 %449 = zext i1 %448 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %449) %450 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2ccb2514 %451 = getelementptr %__CS_cp_i, 0, 3 %452 = load %451 %453 = icmp eq %450 %452 %454 = zext i1 %453 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %454) %455 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@37f5d873 %456 = getelementptr %__CS_cp_i, 0, 4 %457 = load %456 %458 = icmp eq %455 %457 %459 = zext i1 %458 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %459) %460 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7f05fcdd %461 = getelementptr %__CS_cp_i, 0, 5 %462 = load %461 %463 = icmp eq %460 %462 %464 = zext i1 %463 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %464) %465 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@375d68ad %466 = getelementptr %__CS_cp_i, 0, 6 %467 = load %466 %468 = icmp eq %465 %467 %469 = zext i1 %468 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %469) %470 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@424b08d7 %471 = getelementptr %__CS_cp_j, 0, 1 %472 = load %471 %473 = icmp eq %470 %472 %474 = zext i1 %473 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %474) %475 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5be466ad %476 = getelementptr %__CS_cp_j, 0, 2 %477 = load %476 %478 = icmp eq %475 %477 %479 = zext i1 %478 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %479) %480 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@b579a18 %481 = getelementptr %__CS_cp_j, 0, 3 %482 = load %481 %483 = icmp eq %480 %482 %484 = zext i1 %483 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %484) %485 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@579383df %486 = getelementptr %__CS_cp_j, 0, 4 %487 = load %486 %488 = icmp eq %485 %487 %489 = zext i1 %488 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %489) %490 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4d04244a %491 = getelementptr %__CS_cp_j, 0, 5 %492 = load %491 %493 = icmp eq %490 %492 %494 = zext i1 %493 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %494) %495 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@35adf249 %496 = getelementptr %__CS_cp_j, 0, 6 %497 = load %496 %498 = icmp eq %495 %497 %499 = zext i1 %498 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %499) %500 = load @__CS_error %501 = zext i8 %500 to i32 %502 = icmp ne %501 1 %503 = zext i1 %502 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assert(i32 %503) %504 = load %1 ret %504 Analyze Termination of all function calls matching the pattern: main()