https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120035
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- It works with _Bool f(){ _Bool retval = 0; for(unsigned int i=0; i< (1u << 30); ++i) retval = retval || g(i); return retval; } it also works when g() takes an [unsigned] long. So a bit weird.