svcomp_gcd1_true-alloca.c

loading
details
attribute value
description
owner Johannes Waldmann
uploaded 2017-08-17 03:45:15.0
disk size 682 Bytes
downloadable true
type
attribute value
name no_type
processor id 1
description this is the default benchmark type for rejected benchmarks and benchmarks that are not associated with a type.
owning community none
loading contents
#include <stdlib.h>

extern int __VERIFIER_nondet_int(void);

int gcd(int x, int y) {
    int* x_ref = alloca(sizeof(int));
    int* y_ref = alloca(sizeof(int));
    int* r = alloca(sizeof(int));
    *x_ref = x;
    *y_ref = y;
    if (*x_ref < 0) *x_ref = -(*x_ref);
    if (*y_ref < 0) *y_ref = -(*y_ref);
    while (*y_ref > 0) {
        /* the next statements compute r = mod(x,y) */
        *r = *x_ref;
        while (*r >= *y_ref)
            *r = *r - *y_ref;
        /* end of inlined mod */
        *x_ref = *y_ref;
        *y_ref = *r;
    }
    return *x_ref;
}

int main() {
    int x,y;
    x = __VERIFIER_nondet_int();
    y = __VERIFIER_nondet_int();
    gcd(x,y);
}
popout

content may be truncated. 'popout' for larger text window.

actions get anonymous link download benchmark