extern void abort(void);
int __attribute__((noinline, noclone))
foo(char *p) {
    int h = 0;
    do {
        if (*p == '\0')
            break;
        ++h;
        if (p == 0)
            abort();
        ++p;
    } while (1);
    return h;
}
int main() {
    if (foo("a") != 1)
        abort();
    return 0;
}
