https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109170
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- Reduced test-case: $ cat open_catalog.i unsigned long bufmax = 0; unsigned long __open_catalog_bufmax; void *realloc(); void free(); void __open_catalog(char *buf) { char *old_buf = buf; buf = realloc (buf, bufmax); if (__builtin_expect ((buf == ((void *)0)), 0)) free (old_buf); }