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)

Reply via email to