4.36/2.06 MAYBE 4.36/2.07 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 4.36/2.07 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.36/2.07 4.36/2.07 4.36/2.07 Termination of the given C Problem could not be shown: 4.36/2.07 4.36/2.07 (0) C Problem 4.36/2.07 (1) CToLLVMProof [EQUIVALENT, 166 ms] 4.36/2.07 (2) LLVM problem 4.36/2.07 4.36/2.07 4.36/2.07 ---------------------------------------- 4.36/2.07 4.36/2.07 (0) 4.36/2.07 Obligation: 4.36/2.07 c file /export/starexec/sandbox/benchmark/theBenchmark.c 4.36/2.07 ---------------------------------------- 4.36/2.07 4.36/2.07 (1) CToLLVMProof (EQUIVALENT) 4.36/2.07 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 4.36/2.07 ---------------------------------------- 4.36/2.07 4.36/2.07 (2) 4.36/2.07 Obligation: 4.36/2.07 LLVM Problem 4.36/2.07 4.36/2.07 Aliases: 4.36/2.07 4.36/2.07 Data layout: 4.36/2.07 4.36/2.07 "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.36/2.07 4.36/2.07 Machine: 4.36/2.07 4.36/2.07 "x86_64-pc-linux-gnu" 4.36/2.07 4.36/2.07 Type definitions: 4.36/2.07 4.36/2.07 Global variables: 4.36/2.07 4.36/2.07 Function declarations and definitions: 4.36/2.07 4.36/2.07 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.36/2.07 *BasicFunctionTypename: "malloc" returnParam: *i8 parameters: (i64) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.36/2.07 *BasicFunctionTypename: "__VERIFIER_nondet_String" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.36/2.07 0: 4.36/2.07 %length = alloca i32, align 4 4.36/2.07 %nondetString = alloca *i8, align 8 4.36/2.07 %1 = call i32 @__VERIFIER_nondet_int() 4.36/2.07 store %1, %length 4.36/2.07 %2 = load %length 4.36/2.07 %3 = icmp slt %2 1 4.36/2.07 br %3, %4, %5 4.36/2.07 4: 4.36/2.07 store 1, %length 4.36/2.07 br %5 4.36/2.07 5: 4.36/2.07 %6 = load %length 4.36/2.07 %7 = sext i32 %6 to i64 4.36/2.07 %8 = mul %7 1 4.36/2.07 %9 = call *i8 @malloc(i64 %8) 4.36/2.07 store %9, %nondetString 4.36/2.07 %10 = load %length 4.36/2.07 %11 = sub %10 1 4.36/2.07 %12 = sext i32 %11 to i64 4.36/2.07 %13 = load %nondetString 4.36/2.07 %14 = getelementptr %13, %12 4.36/2.07 store 0, %14 4.36/2.07 %15 = load %nondetString 4.36/2.07 ret %15 4.36/2.07 4.36/2.07 *BasicFunctionTypename: "cstrlen" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (s *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.36/2.07 0: 4.36/2.07 %1 = alloca *i8, align 8 4.36/2.07 %p = alloca *i8, align 8 4.36/2.07 store %s, %1 4.36/2.07 %2 = load %1 4.36/2.07 store %2, %p 4.36/2.07 br %3 4.36/2.07 3: 4.36/2.07 %4 = load %p 4.36/2.07 %5 = load %4 4.36/2.07 %6 = sext i8 %5 to i32 4.36/2.07 %7 = icmp ne %6 0 4.36/2.07 br %7, %8, %11 4.36/2.07 8: 4.36/2.07 %9 = load %p 4.36/2.07 %10 = getelementptr %9, 2 4.36/2.07 store %10, %p 4.36/2.07 br %3 4.36/2.07 11: 4.36/2.07 %12 = load %p 4.36/2.07 %13 = load %1 4.36/2.07 %14 = ptrtoint *i8 %12 to i64 4.36/2.07 %15 = ptrtoint *i8 %13 to i64 4.36/2.07 %16 = sub %14 %15 4.36/2.07 %17 = trunc i64 %16 to i32 4.36/2.07 ret %17 4.36/2.07 4.36/2.07 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 4.36/2.07 0: 4.36/2.07 %1 = alloca i32, align 4 4.36/2.07 store 0, %1 4.36/2.07 %2 = call *i8 @__VERIFIER_nondet_String() 4.36/2.07 %3 = call i32 @cstrlen(*i8 %2) 4.36/2.07 ret %3 4.36/2.07 4.36/2.07 4.36/2.07 Analyze Termination of all function calls matching the pattern: 4.36/2.07 main() 4.42/2.10 EOF