void abort(void);
void exit(int);

long foo(long a, long b, long c) {
    if (a != 12 || b != 1 || c != 11)
        abort();
    return 0;
}
long bar(long a, long b) {
    return b;
}
void baz(long a, long b, void *c) {
    long d;
    d = (long)c;
    foo(d, bar(a, 1), b);
}
int main() {
    baz(10, 11, (void *)12);
    exit(0);
}
