4.85/2.23 MAYBE 4.85/2.24 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 4.85/2.24 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.85/2.24 4.85/2.24 4.85/2.24 Termination of the given C Problem could not be shown: 4.85/2.24 4.85/2.24 (0) C Problem 4.85/2.24 (1) CToLLVMProof [EQUIVALENT, 180 ms] 4.85/2.24 (2) LLVM problem 4.85/2.24 4.85/2.24 4.85/2.24 ---------------------------------------- 4.85/2.24 4.85/2.24 (0) 4.85/2.24 Obligation: 4.85/2.24 c file /export/starexec/sandbox/benchmark/theBenchmark.c 4.85/2.24 ---------------------------------------- 4.85/2.24 4.85/2.24 (1) CToLLVMProof (EQUIVALENT) 4.85/2.24 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 4.85/2.24 ---------------------------------------- 4.85/2.24 4.85/2.24 (2) 4.85/2.24 Obligation: 4.85/2.24 LLVM Problem 4.85/2.24 4.85/2.24 Aliases: 4.85/2.24 4.85/2.24 Data layout: 4.85/2.24 4.85/2.24 "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.85/2.24 4.85/2.24 Machine: 4.85/2.24 4.85/2.24 "x86_64-pc-linux-gnu" 4.85/2.24 4.85/2.24 Type definitions: 4.85/2.24 4.85/2.24 Global variables: 4.85/2.24 4.85/2.24 Function declarations and definitions: 4.85/2.24 4.85/2.24 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.85/2.24 *BasicFunctionTypename: "sumOfThirdBytes" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (numbers *i32, array_size i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.85/2.24 0: 4.85/2.24 %1 = alloca *i32, align 8 4.85/2.24 %2 = alloca i32, align 4 4.85/2.24 %i = alloca i32, align 4 4.85/2.24 %sum = alloca i32, align 4 4.85/2.24 %p = alloca *i8, align 8 4.85/2.24 store %numbers, %1 4.85/2.24 store %array_size, %2 4.85/2.24 store 0, %sum 4.85/2.24 store 0, %i 4.85/2.24 br %3 4.85/2.24 3: 4.85/2.24 %4 = load %i 4.85/2.24 %5 = load %2 4.85/2.24 %6 = icmp slt %4 %5 4.85/2.24 br %6, %7, %30 4.85/2.24 7: 4.85/2.24 %8 = load %i 4.85/2.24 %9 = sext i32 %8 to i64 4.85/2.24 %10 = load %1 4.85/2.24 %11 = getelementptr %10, %9 4.85/2.24 %12 = bitcast *i32 %11 to *i8 4.85/2.24 store %12, %p 4.85/2.24 %13 = load %p 4.85/2.24 %14 = getelementptr %13, 2 4.85/2.24 store %14, %p 4.85/2.24 br %15 4.85/2.24 15: 4.85/2.24 %16 = load %p 4.85/2.24 %17 = load %16 4.85/2.24 %18 = sext i8 %17 to i32 4.85/2.24 %19 = icmp sgt %18 0 4.85/2.24 br %19, %20, %26 4.85/2.24 20: 4.85/2.24 %21 = load %sum 4.85/2.24 %22 = add %21 1 4.85/2.24 store %22, %sum 4.85/2.24 %23 = load %p 4.85/2.24 %24 = load %23 4.85/2.24 %25 = add %24 -1 4.85/2.24 store %25, %23 4.85/2.24 br %15 4.85/2.24 26: 4.85/2.24 br %27 4.85/2.24 27: 4.85/2.24 %28 = load %i 4.85/2.24 %29 = add %28 1 4.85/2.24 store %29, %i 4.85/2.24 br %3 4.85/2.24 30: 4.85/2.24 %31 = load %sum 4.85/2.24 ret %31 4.85/2.24 4.85/2.24 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.85/2.24 0: 4.85/2.24 %1 = alloca i32, align 4 4.85/2.24 %numbers = alloca *i32, align 8 4.85/2.24 %array_size = alloca i32, align 4 4.85/2.24 store 0, %1 4.85/2.24 %2 = call i32 @__VERIFIER_nondet_int() 4.85/2.24 store %2, %array_size 4.85/2.24 %3 = load %numbers 4.85/2.24 %4 = load %array_size 4.85/2.24 %5 = call i32 @sumOfThirdBytes(*i32 %3, i32 %4) 4.85/2.24 ret %5 4.85/2.24 4.85/2.24 4.85/2.24 Analyze Termination of all function calls matching the pattern: 4.85/2.24 main() 5.13/2.28 EOF