This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/39394] gcc 4.4.0 20090306 segfaults at argp-help.c in glibc 2.7 and 2.9



------- Comment #6 from jakub at gcc dot gnu dot org  2009-03-09 11:09 -------
Confirmed.  Simplified testcase:
extern inline void *
asmfn (void *dest, const void *src, unsigned long n)
{
  asm volatile (""
: "=m" (*(struct { char x[n]; } *) dest)
: "r" (n), "r" (dest), "r" (src),
  "m" (*(struct { char x[n]; } *) src)
: "cc");
  return dest;
}


extern inline void
baz (char *dest, const char *str, unsigned long len)
{
   if (__builtin_constant_p (len))
     asmfn (dest, str, len + 1);
   else
     asmfn (dest, str, len);
}

extern inline void
bar (char *dest, const char *str)
{
  baz (dest, str, __builtin_strlen (str));
}

void
foo (char *dest, const char *str)
{
  bar (dest, str);
}


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|tree-optimization           |c
           Keywords|ice-on-valid-code           |
      Known to fail|4.4.0                       |
      Known to work|4.3.1                       |
           Priority|P3                          |P1
   Last reconfirmed|0000-00-00 00:00:00         |2009-03-09 11:09:57
               date|                            |
            Summary|[4.4 regression] ICE in     |gcc 4.4.0 20090306 segfaults
                   |copy_tree_body_r            |at argp-help.c in glibc 2.7
                   |                            |and 2.9
   Target Milestone|---                         |4.4.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39394


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]