1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
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; }