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

#define mask  0xffff0000L
#define value 0xabcd0000L

long foo(long x) {
    if ((x & mask) == value)
        return x & 0xffffL;
    return 1;
}

int main(void) {
    if (foo(value) != 0 || foo(0) != 1)
        abort();

    exit(0);
}
