https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84526
David Malcolm <dmalcolm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dmalcolm at gcc dot gnu.org --- Comment #10 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Probable duplicate seen downstream here (compiling "tgif"): https://bugzilla.redhat.com/show_bug.cgi?id=1553505 I reduced it to: # cat rhbz1553505.c struct NamesRec { char inbuf[512]; char dir_name[256 + 1]; char name[256 + 1]; }; static struct NamesRec namesInfo; static void ParseFileName(char *FullName, char *DirName, char *Name) { int i, len; len = __builtin_strlen(FullName); __builtin_strcpy(DirName, FullName); for (i = len - 1; i >= 0; i--) { if (DirName[i] == '/') { __builtin_strcpy(Name, &(DirName[i + 1])); } } } void BackUpOneWord(void) { struct NamesRec *pni = (&namesInfo); ParseFileName(pni->inbuf, pni->dir_name, pni->name); } # gcc -O2 -Wrestrict rhbz1553505.c during GIMPLE pass: strlen rhbz1553505.c: In function ‘BackUpOneWord’: rhbz1553505.c:18:6: internal compiler error: Segmentation fault void BackUpOneWord(void) ^~~~~~~~~~~~~ (etc; looks like the same backtrace)