http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50996
--- Comment #1 from Alessandro Rubini <rubini at gnudd dot com> 2011-11-05 17:20:41 UTC --- I removed more stuff. What follows is the minimal file that triggers the error. Swapping the && operands won't make it segfault void envz_entry(char *envz) { char *buf_ptr = (char *)envz; while(1) while(*buf_ptr && buf_ptr != envz) buf_ptr--; }