int __attribute__((noipa)) f(unsigned a, int b) {
    if (a < 0) __builtin_unreachable();
    if (a > 30) __builtin_unreachable();
    int t = a;
    if (b) t = 100;
    else if (a != 0)
        t = a;
    else
        t = 1;
    return t;
}


int main(void) {
    if (f(0, 0) != 1)
        __builtin_abort();
    if (f(1, 0) != 1)
        __builtin_abort();
    if (f(0, 1) != 100)
        __builtin_abort();
    if (f(1, 0) != 1)
        __builtin_abort();
    if (f(30, 0) != 30)
        __builtin_abort();
}
